asp.net-mvc – ValidationMessage – 处理同一属性的多个错误
发布时间:2020-05-25 09:13:12 所属栏目:asp.Net 来源:互联网
导读:我在MVC中使用ValidationMessage控件.验证每个属性时,可能会显示多个错误消息,但ValidationMessage仅显示列表中的第一条错误消息. 这是一个例子: ModelState[Key] = new ModelState();ModelState[Key].Errors.Add(Error 1);ModelState[Key].Errors.Add(E
|
我在MVC中使用ValidationMessage控件.验证每个属性时,可能会显示多个错误消息,但ValidationMessage仅显示列表中的第一条错误消息. 这是一个例子: ModelState["Key"] = new ModelState();
ModelState["Key"].Errors.Add("Error 1");
ModelState["Key"].Errors.Add("Error 2");
在我的HTML中:<%= Html.ValidationMessage(“Key”)%> 显示:“错误1” 我想在页面上看到所有错误消息“Error 1 Error 2” 知道怎么做吗? 解决方法我有完全相同的问题,所以我为HtmlHelper创建了一个扩展方法,作为MVC ValidationMessage方法的替代.这比ValidationSummary方法的好处是它显示每个字段的错误消息,因此您可以将它放在每个字段旁边(与ValidationMessage方法相同). public static string AllValidationMessage(this HtmlHelper helper,string modelName)
{
StringBuilder builder = new StringBuilder();
TagBuilder ulTag = new TagBuilder("ul");
ulTag.AddCssClass("u-error-list");
builder.Append(ulTag.ToString(TagRenderMode.StartTag));
if (helper.ViewData.ModelState.ContainsKey(modelName) &&
helper.ViewData.ModelState[modelName].Errors.Count > 0)
{
foreach (var err in helper.ViewData.ModelState[modelName].Errors)
{
TagBuilder liTag = new TagBuilder("li") { InnerHtml = HttpUtility.HtmlEncode(err.ErrorMessage) };
liTag.AddCssClass("u-error-item");
builder.Append(liTag.ToString());
}
}
builder.Append(ulTag.ToString(TagRenderMode.EndTag));
var msgSpan = helper.ValidationMessage(modelName,"{placeholder}");
if (msgSpan == null)
return string.Empty;
return msgSpan.ToHtmlString().Replace("{placeholder}",builder.ToString());
}
public static string AllValidationMessageFor<TModel,TProperty>(this HtmlHelper<TModel> helper,Expression<Func<TModel,TProperty>> expression)
{
return HtmlHelperExtensions.AllValidationMessage(helper,ExpressionHelper.GetExpressionText(expression));
}
编辑:添加了AllValidationMessageFor方法编辑:在msgSpan上添加了一个空检查 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 路径’PROPFIND’被禁止?
- asp.net-mvc – 从ASP.NET MVC2升级到MVC3的原因
- asp.net-mvc – ASP.NET MVC jQueryUI datepicker在使用AJA
- ASP.NET等价的服务器端包括
- iis – 如何调试w3wp.exe随机崩溃的原因?
- asp.net-mvc – MvcHtmlString.Create()和Html.Raw()之间的
- asp.net-mvc – 如何使用编辑器内部的foreach
- asp.net-mvc – 命名约定 – 控制器的一个规则,没有模型和视
- 我的ASP.NET Web应用程序无法“找到”App_Code文件夹中的任
- asp.net – 从VS2008发布的等效msbuild命令
推荐文章
站长推荐
- asp.net – 在IE10中不应该“X-UA兼容IE =边缘”
- asp.net-mvc – ASP.NET MVC 3 – 你想看什么功能
- asp.net – 为什么HttpContext.Current.User.Ide
- 在ASP.NET中的OpenID认证?
- .net – 尝试捕捉仍然有用吗?
- asp.net-mvc – 如何将SQL CE 4 CTP部署到共享主
- asp.net – 如何使Owin自主主机支持Json输出?
- ASP.NET MVC3 Razor – 如何有条件地退出或结束或
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-web-api – 无法从’Microsoft.Identity
热点阅读
