asp.net-mvc-2 – 在ASP.NET MVC 2中自定义ValidationSummary
发布时间:2020-12-16 06:36:15 所属栏目:asp.Net 来源:网络整理
导读:我想在ASP.NET MVC 2中自定义ValidationSummary的html输出 从 div class="validation-summary-errors" spanOops! validation was failed because:/span ul liThe Title field is required./li liThe Body field is required./li /ul/div 至 div class="valid
我想在ASP.NET MVC 2中自定义ValidationSummary的html输出
从 <div class="validation-summary-errors"> <span>Oops! validation was failed because:</span> <ul> <li>The Title field is required.</li> <li>The Body field is required.</li> </ul> </div> 至 <div class="validation-error"> <p>Oops! validation was failed because:</p> <ul> <li>The Title field is required.</li> <li>The Body field is required.</li> </ul> </div> asp.net MVC 2有什么新方法可以解决这个问题吗? 解决方法
似乎没有任何方法可以用模板来做,这很差.如果你看一下这个特定助手方法的代码,你会看到HTML被烘焙到方法本身:
public static string ValidationSummary(this HtmlHelper htmlHelper,string message,IDictionary<string,object> htmlAttributes) { // Nothing to do if there aren't any errors if (htmlHelper.ViewData.ModelState.IsValid) { return null; } string messageSpan; if (!String.IsNullOrEmpty(message)) { TagBuilder spanTag = new TagBuilder("span"); spanTag.MergeAttributes(htmlAttributes); spanTag.MergeAttribute("class",HtmlHelper.ValidationSummaryCssClassName); spanTag.SetInnerText(message); messageSpan = spanTag.ToString(TagRenderMode.Normal) + Environment.NewLine; } else { messageSpan = null; } StringBuilder htmlSummary = new StringBuilder(); TagBuilder unorderedList = new TagBuilder("ul"); unorderedList.MergeAttributes(htmlAttributes); unorderedList.MergeAttribute("class",HtmlHelper.ValidationSummaryCssClassName); foreach (ModelState modelState in htmlHelper.ViewData.ModelState.Values) { foreach (ModelError modelError in modelState.Errors) { string errorText = GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext,modelError,null /* modelState */); if (!String.IsNullOrEmpty(errorText)) { TagBuilder listItem = new TagBuilder("li"); listItem.SetInnerText(errorText); htmlSummary.AppendLine(listItem.ToString(TagRenderMode.Normal)); } } } } 好消息是,MVC是开源的,你可以从the CodePlex repository获取源代码并以你喜欢的方式调整它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在文件系统中获取ASP.NET MVC站点的路径
- asp.net-mvc-3 – 在剃刀中使用@variable后有一个更简洁的逗
- asp.net – 从Visual Studio 2015发布
- asp.net-mvc-3 – MVC 3 – 比较属性 – 在客户端执行不区分
- asp.net-mvc – 使用jQuery.get时可以指定相对URL吗?
- asp.net – 在文本框中输入按键时避免发出哔声
- asp.net – 如何捕获异常形式ObjectDataSource.Updata()
- asp.net-mvc – 如何在MVC中使用HtmlHelper获取自定义id
- ASP.net防止SQL注入方法
- 如何在Asp.net中调用webmethod C#
推荐文章
站长推荐
- asp.net – 通过sql servers SP在aspnet成员中添
- asp.net core 核心对象解析
- asp.net – 如何在asp中使用会话变量使用c#
- ASP.NET MVC,ActionFilters,静态类和传递数据
- asp.net-mvc-4 – 使用HTML.ActionLink调用Post方
- asp.net-mvc – 使用Castle Windsor在ASP.NET MV
- 使用ASP.Net Core MVC和ASP.Net Web Api在Angula
- asp.net-mvc-4 – 使用Windows Azure Active Dir
- asp.net-core – 如何从控制器调用View组件
- asp.net – 如何在全球范围内更改路线?
热点阅读