我有一条验证消息,指出我需要在运行时更改错误消息文本的位置(当他们单击提交按钮时)。
根据传入的ID,用户必须发送XML或查询。
如果他们应该发送查询,我希望它说:“需要查询。”
如果他们应该发送xml,我希望它说:“需要XML。”
我试图清除ModelState.Clear();
我尝试不设置ValidationMessageFor()中的第二个参数...(通常是“”,但是当我尝试在其中设置它时,当页面加载时它将自动显示在页面上)< / p>
@Html.ValidationMessage("RawXmlOrQueryText", string.Format("The {0} field is required.", Model.Label), new { @class = "text-danger" })
如果我做这样的事情,那就永远不会显示句点:
@Html.ValidationMessageFor(m => m.RawXmlOrQueryText, string.Format("The {0} field is required.", Model.Label), new { @class = "text-danger", style = "display:" + "none" + ";" })
有更好的方法吗?
我希望能够在运行时设置错误消息,并在用户单击按钮之前将其显示在页面上。
答案 0 :(得分:0)
您可以使用AddModelError()吗?
假设您正在使用此模型:
public class IndexModel
{
public string QueryText { get; set; }
}
在您的post方法中,添加以下代码:
var isXML = true; //oversimplification of your validation code
var someErrorMsg = isXML ? "The XML is required." : "The Query is required.";
ModelState.AddModelError(nameof(model.QueryText), someErrorMsg);
return View(model);