MVC项目SignUp视图出现NullReferenceException异常求助
解决MVC视图中SignUp页面的NullReferenceException问题
嘿,这个问题我之前刚碰到过,原因其实特别直白——你的SignUp视图在等着接收一个模型对象,但控制器压根没给它传!
问题根源
看你的控制器代码:
public ActionResult SignUp() { ViewBag.Message = "Employee Sign Up"; return View(); }
这里的return View();没有传入任何模型参数,但你的视图顶部明确声明了@model MVCApp.Models.EmployeeModel,这意味着视图必须拿到一个非null的EmployeeModel实例才能正常渲染。当视图加载时,model是null状态,@Html.EditorFor试图访问model.EmployeeId自然就触发了空引用异常。
修复方法
只需要修改控制器的SignUp方法,返回视图时传入一个新的EmployeeModel实例就行:
public ActionResult SignUp() { ViewBag.Message = "Employee Sign Up"; // 创建空的模型实例传递给视图 return View(new EmployeeModel()); }
额外补充
- 对于GET请求的视图,必须手动传入模型实例,哪怕是空实例也没关系,HtmlHelper方法只要能拿到非null的模型对象,就能正常处理默认值(比如
EmployeeId的默认int值0)。 - 要是处理POST请求,ASP.NET MVC的模型绑定会自动把表单数据填充到模型对象里,这时候不用手动创建实例,直接在方法参数里接收就行,比如
[HttpPost] public ActionResult SignUp(EmployeeModel model)。
内容的提问来源于stack exchange,提问作者JAmes
相关产品推荐
相关产品推荐

