我有以下類型的,我使用,以便擴展我們整個系統中使用其他類型的:我基本上是使用這種類型充當一個容器我的剃刀模型是對郵政
public class SystemUser : User
{
public int? RoleId
{
get { return this.Relationhip.FirstOrDefault().TypeList.FirstOrDefault().Id();}
set { RoleId = value; }
}
public Role _Role
{
get { return (Role)RoleId; }
set { RoleId = (int)value; }
}
public SelectListItem[] RolesList { get; set; }
public bool IsA(params Role[] roles)
{
return new List<Role>(roles).Any(v => v.Equals(_Role));
}
public bool IsNotA(params Role[] roles)
{
return !(new List<Role>(roles).Any(v => v.Equals(_Role)));
}
}
來自我們數據庫的數據並將它從控制器作爲@model傳遞給我們的視圖。該視圖獲取填充很好,但在使用@ Html.LabelFor()字段修改模型並將該數據傳遞給我們用於將更新的數據保存到數據庫的控制器之後,該模型爲null。如果我單步執行POST,則在我的SystemUser類中的ROleId的getter上得到一個NullReferenceException異常。注意_Role屬性;衆所周知,如果某個類的屬性與其類型具有相同的名稱,則該模型將向控制器發佈空白,但我已經修復了該類型。
這是視圖的肉:
@model SystemUser
@using (Html.BeginForm("Usr", "Mr", FormMethod.Post, new {@autocomplete="off"}))
{
//Fields removed for sake of simplifying stackoverflow post
<input class="button green-bg" type="submit" value="Save" />
<input class="button gray-bg" type="button" onclick="location.href='@Url.Action("View", "Mr")'" value="Cancel" />
}
這裏任何幫助將不勝感激。
顯示領域以及和控制器動作以及 – 2015-01-15 15:30:17
只在助手(除顯示器和標籤)字段被綁定到模型中。確保你想要返回的字段在一個 – 2015-01-15 15:31:47
你的控制器是什麼樣的?它是否有與[Usr]同名的方法,並且是用[HttpPost]屬性裝飾的方法?控制器是否真的命名爲[Mr]? – ajawad987 2015-01-15 15:37:09