当后端发生错误时,MVC控制器通过后端返回消息
ModelState.AddModelError("", "message");
我希望将这个"消息" 显示在2行中,所以我想在其间放一个
或一个."\r\n""<br />"
我正在使用Razor来显示消息@Html.ValidationSummary();
但是视图中的HTML输出显示为<br/>
在消息上传递New-Lines并将其解释为
HTML输出级别的真实标记的最佳方法是什么?
================================
控制器代码:
ModelState.AddModelError("", "Line one <br /> Line two.");
return Request.IsAjaxRequest() ? (ActionResult) PartialView("ViewName", model)
: View(model);
Run Code Online (Sandbox Code Playgroud)
查看代码:
@using (Ajax.BeginForm("Index", "Home", new AjaxOptions { UpdateTargetId = "tv" }))
{
@if (Html.ValidationSummary() != null)
@Html.Raw(Server.HtmlDecode(Html.ValidationSummary(true).ToString()))
....
}
Run Code Online (Sandbox Code Playgroud) 我有一个这样的模型:
[IsValidInput]
public class Input
{
//different properties
}
Run Code Online (Sandbox Code Playgroud)
使用这样的自定义验证属性:
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class IsValidInput : ValidationAttribute
{
public override bool IsValid(object value)
{
try
{
ExternalValidator.Validate(value);
}
catch (CustomException ex)
{
foreach(var errorText in ex.GetDescriptions())
{
this.ErrorMessage = this.ErrorMessage + errorText;
}
return false;
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个包含多个错误的 ErrorMessage 对象。我想以某种方式返回多个 ErrorMessage 对象,这样在我看来,我将拥有一个包含多个列表项的列表,如下所示:
如何返回 ErrorMessages 列表来解决这个问题?