2012-05-04 44 views
7

是什麼形式ASP.NET/MVC結合所定義的行爲,如果你張貼的形式和它的行動具有查詢參數你有表格數據?模型查詢字符串和表單POST上綁定參數

例如:

<form action="my/action?foo=1" method="post"> 
    <input type="hidden" name="bar" value="2"> 
</form> 

如果這樣的表單提交應該控制器同時獲得foobar或只是其中之一?

回答

7

控制器將得到兩個值。默認的模型聯編程序將嘗試從URI(查詢字符串或路由參數)或主體(以及表單數據支持開箱即用)中查找匹配參數。

0

我認爲它應該能夠得到兩者。在這種情況下,我會創建一個ViewModel,它包含兩個字符串或int屬性,一個名爲'foo',另一個名爲'bar',並讓您的ActionResult接受ViewModel。您應該看到這兩個值進來

1

注意,你可以看到這是由Html.BeginForm輔助支持,您可以通過routeValues這樣做:

@Html.BeginForm("ActionName", "ControllerName", new { foo = "1" }) 

它在本質上產生相同的HTML作爲您的表單標籤,但希望發佈給那些發現此問題的人,並且想知道如何使用BeginForm助手傳遞不屬於表單的附加值。

相關問題