C# 一个特定上下文中缺少AspNetCore ModelState类型

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

我的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 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);
            }

您的控制器是否继承:
控制器
?您的控制器是否继承:
控制器