我的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 上。
我该如何解决?