使用ASP.net MVC可以將表單發佈到控制器操作,其中包括不是表單中的參數,而是來自URL?ASP.NET MVC - 帶有來自URL的其他參數的POST操作方法
例如
在GroupController操作方法:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int idOne, int idTwo, Model model)
{ ... }
路線:
"{controller}/{action}/{idOne}/{idTwo}"
發佈網址:
/Employee/Show/1/42
在這個例子中,形式是被張貼到一個不同的控制器,該模型具有正確的值,但其他參數具有默認值0.
我期待的行爲是ModelBinder會看到我有兩個參數匹配給定的路線,並分配當前參數的值和1和42的值與GET操作的工作方式相同。
此行爲不受支持,或者我錯過了什麼?
EDIT: 爲了清楚起見,在Show
視圖用於控制器Employee
的形式含有,其發佈到不同的控制器的形式。我們可以稱它爲Group
。
形式行動URL看起來像這樣
/Groups/Create/0/0
的形式聲明如下
Html.BeginForm("Create", "Groups")
嘗試許多不同的重載Html.BeginForm
我發現,參數僅映射在表格後動作網址與瀏覽器地址欄中的當前網址相匹配。
所以,如果我導航到網址/Groups/Create/1/42
我會有一個新的表格。如果我然後提交表單,則URL路由值將傳遞給POST操作。
我會嘗試定義路線包括模型並將其設置爲空的默認看看會發生什麼。 '{控制器}/{動作}/{idOne}/{idTwo}/{型號}' – 2010-03-17 20:07:46