可能足够长,以至于我无法将其传递给查询字符串。是否可以提交整个表格?如果是这样,我将如何在控制器中检索表单的值?
答案 0 :(得分:2)
为了澄清mpminnich的回复,您可以接受FormCollection作为操作参数:
public ActionResult Add(FormCollectiom form) {
var foo = form["fieldName"];
...
}
答案 1 :(得分:1)
FormCollection将包含视图表单上的所有值。您可以按索引或控件名称搜索集合。
答案 2 :(得分:0)
是的,您可以在表单上使用method="POST"
,这样所有值都将沿POST主体发送,而不是在查询字符串中发送。例如:
<% using (Html.BeginForm()) { %>
... some input fields
<% } %>
在控制器操作中,您可以使用强类型视图模型来获取这些值,这要归功于默认的模型绑定器(推荐):
[HttpPost]
public ActionResult Index(MyViewModel model)
{
...
}
或从请求中获取它们:
[HttpPost]
public ActionResult Index()
{
var param1 = Request["param1"];
var param2 = Request["param2"];
...
}