我有以下类型的,我使用,以便扩展我们整个系统中使用其他类型的:我基本上是使用这种类型充当一个容器我的剃刀模型是对邮政
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