ASP.NET Core MVC报错:'AdverseEventReport'是命名空间却被用作类型
解决ASP.NET Core MVC中“'AdverseEventReport' is a namespace but is used like a type”错误
错误根源很明确:你在控制器的Index方法里错误地实例化了项目命名空间AdverseEventReportAPP,而非模型类AdverseEventReport。同时需注意C#是大小写敏感语言,要保证命名空间引用的一致性。
具体修正步骤:
- 修复控制器实例化代码
这是最核心的错误,将控制器中new AdverseEventReportAPP替换为new AdverseEventReport即可。
修正后的控制器Index方法代码:
[HttpGet] public IActionResult Index() { // 正确实例化AdverseEventReport模型 var model = new AdverseEventReport { Date = "2024-10-21", PatientID = "12345", PreExistingConditions = "None", AdverseSymptoms = "Headache, Dizziness", Severity = "Moderate", ReportableToFDA = true, Reasoning = "Critical side effect", DrugName = "Aspirin", DrugType = "Analgesic", ReasonForTaking = "Pain Relief" }; return View(model); }
统一命名空间大小写(可选但推荐)
当前代码里模型命名空间是AdverseEventReportAPP.Models(APP大写),控制器命名空间是AdverseEventReportApp.Controllers(App小写)。虽然当前using语句能正常引用模型,但为避免后续混淆,建议统一命名空间的大小写,比如全部改为AdverseEventReportApp。同步视图模型引用(若修改命名空间)
如果调整了命名空间大小写,视图开头的@model AdverseEventReportAPP.Models.AdverseEventReport也要同步更新为新的命名空间路径。
额外注意事项:
- 检查项目中是否存在与类名同名的
AdverseEventReport命名空间,这也是触发该错误的常见原因,但当前代码里主要问题是实例化对象错误。 - 确保控制器顶部的
using AdverseEventReportAPP.Models;语句正确引用了模型所在命名空间。
内容的提问来源于stack exchange,提问作者Matt Paisley
相关产品推荐
相关产品推荐

