2011-01-13 72 views

回答

1

FormCollection将具有视图窗体上的所有值。您可以按索引或控件名称搜索集合。

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"]; 
    ... 
} 
+0

访问Request []对象没有什么特别的错,但我相信接受[FormCollection](http://msdn.microsoft.com/en-us/library/system.web.mvc。 formcollection.aspx)作为一个操作参数与MVC的最佳实践更为一致。 – 2011-01-13 16:37:18

2

澄清mpminnich的反应,你能接受一个FormCollection作为动作参数:

public ActionResult Add(FormCollectiom form) { 
    var foo = form["fieldName"]; 
    ... 
} 
+0

谢谢。我想一个视觉会好得多。 :-) – 2011-01-13 16:37:36

相关问题