操作方法参数中的必需属性

Required attribute in action methods argument

我有一个Controller的动作方法Create如下:

[HttpPost]
public async Task<IActionResult> Create([Required]string name)
{
    if (ModelState.IsValid)
    {
        IdentityResult result = await roleManager.CreateAsync(new IdentityRole(name));
        if (result.Succeeded)
            return RedirectToAction("Index");
        else
            Errors(result);
    }
    return View(name);
}

[Required] 属性在参数中的作用是什么?

[Required] 属性允许您使用 ModelState.IsValid 结构。

基本上就是说当标记的参数为空时你的模型是无效的。

参考:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-2.1

[Required] 确保模型得到验证。如果您忽略将名称作为查询字符串发送,则会出现以下错误。

{
"name": [
    "The name field is required."
]
}