ModelState.AddModelError到字段的特定ValidationMessageFor?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ModelState.AddModelError到字段的特定ValidationMessageFor?相关的知识,希望对你有一定的参考价值。
我有以下代码来生成html输入和验证消息。
@Html.ValidationSummary(false)
......
<div class="col-md-10">
@Html.TextBoxFor(model => model.ImageUpload, new { type = "file", name = "file" })
@Html.ValidationMessageFor(model => model.ImageUpload)
</div>
在我的行动中我有代码
if (.... something wrong with the input ....)
{
ModelState.AddModelError("", "Invalid image file.");
return RedirectToAction(....
但是,它将在验证摘要部分中显示错误消息。是否可以在验证消息部分显示错误消息以进行输入?
答案
您需要提供一个密钥:
ModelState.AddModelError("ImageUpload", "Invalid image file.");
另一答案
这并没有完全回答OP原始问题,但我正在寻找的是能够将模型错误添加到ModelState中,以便我的表单上的控件不属于模型。这样做的方法是向页面添加ValidationMessage帮助程序,您可以通过名称在AddModelError调用中引用该页面。例:
@Html.ValidationSummary(false)
......
<div class="col-md-10">
<input name="FileName" />
@Html.ValidationMessage("FileNameValidation")
</div>
然后,在控制器操作中,您可以执行以下操作:
if (.... something wrong with the input ....)
{
ModelState.AddModelError("FileNameValidation", "Please fix the File Name.");
return View( viewModel );
}
希望这可以帮助那些情况略有不同的人。
以上是关于ModelState.AddModelError到字段的特定ValidationMessageFor?的主要内容,如果未能解决你的问题,请参考以下文章
Modelstate.addmodelerror 未显示在 PartialView 中
Asp.Net Core Razor 页面中的“ModelState.AddModelError”显示不正确的错误消息
ModelState.AddModelError 在 asp.net.core RAZOR 页面中不显示任何消息
ASP.Net MVC - GET/POST 具有不同模型时的 ModelState.AddModelError
工作总结 ModelState.AddModelError("ShiYiObject", "对象不能为空!"); 小知识