我在遇到子屬性時遇到了默認的模型綁定命名約定。例如:MVC模型綁定命名約定的子對象?
我有一個視圖模型看起來是這樣的:
public class UserViewModel
{
public User BusinessObject { get; set; }
}
我的User類有一個名爲 「NetworkLogin」
我的視圖具有這樣的特性: <%: Html.LabelFor(model => model.BusinessObject.NetworkLogin)%> <%:Html.TextBoxFor(model => model.BusinessObject.NetworkLogin)%> 自動填充
而且我的控制,我想幹什麼,是
[HttpGet]
public ActionResult UserIndex(string networkLogin) { }
問題: 輸入參數「networkLogin」總是空。這是有道理的,因爲html元素上的實際參數是name =「BusinessObject.NetworkLogin」和id =「BusinessObject_NetworkLogin」。但是,我不知道在我的操作方法中應該使用什麼參數名稱。我試過「businessObject_NetworkLogin」,它也不起作用。
但是,我有這種解決方法可以工作,但我不喜歡它。我添加到我的ViewModel:
public string NetworkLogin
{
get
{
if (BusinessObject == null)
BusinessObject = new User();
return BusinessObject.NetworkLogin;
}
set
{
if (BusinessObject == null)
BusinessObject = new User();
BusinessObject.NetworkLogin = value;
}
}
而我的查看頁面現在說這個。 <%:Html.TextBoxFor(model => model.NetworkLogin)%>
有人能告訴我默認的模型綁定是什麼適當的命名約定,所以我不必採用上述解決方法?
謝謝!
這看起來應該可以工作,但我決定使用一些ajax調用,所以我不願意讓我的項目準備好嘗試以上。 – Raymond 2011-06-09 21:58:37
Darin的+1看起來像一個很好的答案。雷蒙德,你至少可以做的就是在舊版本上試試這個。 – 2011-08-03 11:53:51