相关疑难解决方法(0)

MVC3 - 将NEW-LINE传递给ModelState.AddModelError

当后端发生错误时,MVC控制器通过后端返回消息
ModelState.AddModelError("", "message");

我希望将这个"消息" 显示在2行中,所以我想在其间放一个 或一个."\r\n"
"<br />"

我正在使用Razor来显示消息@Html.ValidationSummary();
但是视图中的HTML输出显示为&lt;br/&gt;

在消息上传递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)

asp.net-mvc-3

11
推荐指数
2
解决办法
8403
查看次数

创建返回多个错误消息的自定义 ValidationAttribute 类

我有一个这样的模型:

[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 对象,这样在我看来,我将拥有一个包含多个列表项的列表,如下所示:

  • 验证错误1
  • 验证错误2

如何返回 ErrorMessages 列表来解决这个问题?

c# asp.net validation asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
7748
查看次数