参数数量未知的控制器?

时间:2010-03-29 14:15:09

标签: javascript html asp.net-mvc post

问候!

我在ASP.NET MVC 2上做一个Form,在我看来我有一个TextBox用于名称,还有两个按钮。 其中一个按钮用于提交,另一个按钮用于JS,添加另一个文本框和下拉列表。

在post controller action方法中,如何获取所有参数? 这是查看代码:

<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>

2 个答案:

答案 0 :(得分:2)

您可以在控制器上使用表单集合参数,并确保生成的文本框具有唯一ID。

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

答案 1 :(得分:0)

如果您在表单帖子中处理任意数量的项目,我建议使用javascript在客户端编码帖子,这样您实际上只会将一个项目发送回您的控制器。 JSON似乎是明显的选择。

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