C# 一个特定上下文中缺少AspNetCore ModelState类型
我的Asp Net核心(2.2)项目中有一个控制器操作。 我已经宣布C# 一个特定上下文中缺少AspNetCore ModelState类型,c#,asp.net-core,C#,Asp.net Core,我的Asp Net核心(2.2)项目中有一个控制器操作。 我已经宣布 using Microsoft.AspNetCore.Mvc.ModelBinding; 行动代码如下: 1: public IActionResult Index() 2: { 3: var errors = ModelState.Values.SelectMany(v => v.Errors); 4: foreach ( ModelState
using Microsoft.AspNetCore.Mvc.ModelBinding;
行动代码如下:
1: public IActionResult Index()
2: {
3: var errors = ModelState.Values.SelectMany(v => v.Errors);
4: foreach ( ModelState modelState in ViewData.ModelState.Values)
...
出于某种原因,编译器正在用一条消息突出显示第4行
错误CS0246找不到类型或命名空间名称“ModelState”(是否缺少using指令或程序集引用?)ics计费C:\Users…\Controllers\HomeController.cs 30 Active
我不明白为什么编译器无法解析第4行的“ModelState”类型,而在第3行引用完全相同的类却没有问题?
ModelState
第三行是ControllerBase
类的属性,这是Controller
继承的。在第四行,它正在查找名为ModelState
的类型,但该类型不存在。ModelState
属性的类型为ModelStateDictionary
:
ModelStateDictionary
的Values
属性的类型为ValueEnumerable
:
它是ModelStateEntry
的IEnumerable
:
我认为您需要将第四行的
ModelState ModelState
更改为ModelStateEntry ModelStateEntry
。但是,您也可以使用var
而不是指定类型名称。ModelState
第三行是ControllerBase
类的属性,它是Controller
继承的。在第四行,它正在查找名为ModelState
的类型,但该类型不存在。ModelState
属性的类型为ModelStateDictionary
:
ModelStateDictionary
的Values
属性的类型为ValueEnumerable
:
它是ModelStateEntry
的IEnumerable
:
我认为您需要将第四行的
ModelState ModelState
更改为ModelStateEntry ModelStateEntry
。但是,您也可以使用var
而不是指定类型名称。您可以通过以下代码循环查找ModelState错误:
if (!ModelState.IsValid)
{
ViewBag.Message = string.Join("; ", ModelState.Values
.SelectMany(x => x.Errors)
.Select(x => x.ErrorMessage));
return View(model);
}
您可以通过以下代码循环查找ModelState错误:
if (!ModelState.IsValid)
{
ViewBag.Message = string.Join("; ", ModelState.Values
.SelectMany(x => x.Errors)
.Select(x => x.ErrorMessage));
return View(model);
}
您的控制器是否继承:
控制器
?您的控制器是否继承:控制器
?