ASP.NET Core 6 MVC Create.cshtml视图访问报内部服务器错误
错误原因
堆栈高亮定位到ViewData["Title"] = "Add New Actor";行属于Razor运行时异常的误定位,根因是视图声明的模型类型Actor无法被解析:
- 从控制器代码可判断
Actor类的完整命名空间为eTickets.Models.Actor - 当前Create视图既没有引入
eTickets.Models命名空间,也没有在@model声明时写全类型名,导致Razor视图动态编译失败,执行到第一个代码块时抛出异常 - ViewData赋值行本身没有语法错误。
另外当前Create的GET动作没有向视图传递模型实例,存在表单渲染时空引用的潜在问题。
修复步骤
二选一即可解决当前500错误:
- 推荐全局修复:打开/Views/_ViewImports.cshtml,添加模型命名空间引用,所有视图均可直接使用模型类名:
@using eTickets.Models @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
- 仅修复当前视图:修改Create.cshtml顶部的模型声明,写全类型名即可,不需要额外引入命名空间:
@model eTickets.Models.Actor @{ ViewData["Title"] = "Add New Actor"; } <!-- 其余视图代码保持不变 -->
修复完成后建议同步修改控制器的Create动作,传入空模型实例避免后续报错:
public IActionResult Create() { return View(new Actor()); }
修改完成后重新生成项目,访问Create页面即可正常加载。
内容的提问来源于stack exchange,提问作者Emmanuel2103
相关产品推荐
相关产品推荐

