2012-04-26 24 views
0

我使用EditorFor傳遞null值到我的控制器

@(Html.EditorFor(m => m.Risk)) 

顯示所有我的風險對象的可編輯值。當這貼到我的控制器,需要一個風險,它看起來像這樣:

[HttpPost] 
public ActionResult Add(Risk formRisk, string programId) 

風險創建(這僅僅是不可思議的),但所有的字符串值都爲空,即使枚舉值正確填充。我也有效地獲得通過表單字段名稱匹配沒有問題的另一個值。

任何人有什麼線索可以從哪裏開始看這個,因爲它有很多是基於約定?

回答

0

原來我的觀點模型與我的方法類型不同,我發佈表單作爲參數。顯然,這被推斷出來,可能是錯誤的,但似乎MVC 3在處理提交的表單時會做一些有趣的基於反射的魔法。比方說,我有這樣一個方法,以便:

[HttpPost] 
public ActionResult ProcessForm(Book book) 
{ 
    string title = book.Title; 
    //code for stuff 
} 

如果我的狀態,我張貼到這一行動中有一個名爲「標題」字段,該表單元素的該值將自動被設置爲任何財產上的參數名稱「標題」。我不知道這件事發生了,但它非常酷,我現在正在用EditorFor正確地利用它。 =]感謝11位有興趣的人。

這篇文章爲我贏得了風滾草徽章,因爲它太無趣了。 =]