在ASP.NET Core 2.1 Preview 1中验证IValidatableObject时,ModelState中的键无效

时间:2018-03-19 16:26:47

标签: c# asp.net-core asp.net-core-mvc

代码

我的viewModel:

public class SearchViewModel : IValidatableObject
{
    // ...some properties...

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        yield return new ValidationResult("My custom object-level error");
    }
}

我的控制器操作:

[HttpPost]
public IActionResult Search(SearchViewModel viewModel)
{
    if (!ModelState.IsValid)
        return View(viewModel);

    return Content("OK");
}

我的观点:

<form asp-action="Search" method="post">
    <div asp-validation-summary="ModelOnly"></div>
    <!-- the rest of the form -->
</form>

问题

在Controller操作中,ModelState的条目包含一个键"viewModel",而不是""(空字符串)。
因此,视图中的验证摘要div不会呈现任何内容。

从我的小调查来看,问题只存在于 ASP.NET Core 2.1 Preview 1 上,而不存在于 ASP.NET Core 2.0 上。

我该如何解决?

0 个答案:

没有答案