当前上下文中不存在名称为'ModelState'的内容。

6
如果我们查看这里的手册,它规定我们应该使用同样的ModelState.IsValidTryValidateModel(),但是当我创建一个项目并恢复它时,我无法访问它。
我做错了什么?
这是手册:https://docs.asp.net/en/latest/tutorials/first-mvc-app/validation.html

'ModelState'在当前上下文中不存在

using Api.Models;
using Microsoft.AspNetCore.Mvc;

namespace Api.Controllers
{
    [Route("api/authorization")]
    public class AuthorizationController
    {
        [Route("login"), HttpPost]
        public IActionResult Authorize(UserViewModel model)
        {
            if (ModelState) // ModelState does not exist.
            {
            }

            return null;
        }
    }
}
3个回答

11

你的控制器需要继承自ApiController(或Controller)。你现在的代码不是一个真正的控制器!


0

当我尝试这样做时,从视图.cshtml文件中收到了此错误:

if (!ModelState.IsValid){ ... }

为了修复这个问题,我需要像这样引用 ViewContext

if (!ViewContext.ModelState.IsValid){ ... }

0
public class AuthorizationController : ControllerBase { ... }

你忘记了“:ControllerBase”。试试这个!


你的回答可以通过添加额外支持信息来改进。请[编辑]以添加更多详细信息,例如引用或文档,以便他人可以确认您的答案是否正确。您可以在帮助中心中找到有关编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接