2011-01-13 78 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

相關問題