2011-12-22 47 views
2

說,我有一個動作爲什麼動作參數不能與動作同名?

public ActionResult Details(MyModel details) 

細節將永遠是在這種情況下無效,因爲該名稱匹配方法名。將它重命名爲其他內容 - 並且它工作正常。 對我來說,這些是2個獨立的東西 - 一個是網址,另一個是POST數據。 有人看過MS解釋過嗎?

回答

6

它不爲空,因爲該操作被稱爲Details。它爲空,因爲您在MyModel類中有一個屬性,名爲Details。因此,默認的模型聯編程序不知道您是否要直接指定MyModelMyModelDetails屬性。因此,要麼重命名模型類中的動作參數名稱或Details屬性的名稱。

+0

我會說它是空的,因爲參數名稱是'details' - 在MyDetails類型中沒有Details屬性。 – Evgeni 2011-12-22 17:31:01

+0

@Eugene,我無法重現這個問題。你能提供一個完整的例子來重現它嗎?你的視圖模型,控制器和視圖是怎樣的?這個控制器動作是如何被調用的? – 2011-12-22 20:06:52

+0

嗯,我只是試圖在家裏重現它,它的工作原理..我明天在工作時會仔細檢查。順便說一句,如果參數對象有一個屬性,它自己命名爲參數,它會保持爲空 - 這是什麼原因造成的? – Evgeni 2011-12-23 00:42:52

0

它與MVC的常規配置有關。 這會產生一些限制。

相關問題