控制器参数数量未知?

控制器参数数量未知?

问题描述:

问候!控制器参数数量未知?

我正在做一个ASP.NET MVC 2的表单,在我看来我有一个TextBox的名称和两个按钮。 其中一个按钮用于提交,另一个按钮具有JS中的功能,添加了另一个文本框和一个下拉列表。

在后控制器操作方法中,如何获取所有参数? 这里是查看代码:

<body> 
    <div> 
     <%using (Html.BeginForm()) 
      { %> 
      New Insurance Type Name: 
      <%=Html.TextBox("InsuranceName") %> 
      <div id="InsuranceDetails"/> 
    </div> 
    <div id="Buttons"> 
     <input type="button" onclick="AddFieldForm()" value="Add Field" /> 
     <p /> 
     <input type="submit" value="Submit" /> 
     <%} %> 
    </div> 
</body> 

你可以只使用控制器上的形式采集参数,并确保您的生成文本框具有唯一的ID。

public ActionResult SomeMethod(FormCollection formValues) 
{ 
    foreach (string key in formValues) 
    {     
     if (key.ToLower().StartsWith("form-text-")) 
     {      
      //Do Something  
     } 
    } 
} 
+0

非常感谢。 – StackPointer 2010-03-29 14:32:28

如果你正在处理的表单中的项目员额任意数量的,我建议编码与JavaScript的客户端的信息,这样你实际上只将单个项目发送回您的控制器。 JSON似乎是明显的选择。

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

+0

但我怎么做,如果我不知道有多少项目,我得到了什么?我应该给他们所有独特的id属性? 谢谢。 – StackPointer 2010-03-30 08:47:01