asp.net-mvc – 字段子集的验证摘要
发布时间:2020-12-16 03:54:32 所属栏目:asp.Net 来源:网络整理
导读:我有一个包含3个不同部分的表单,看起来像这样: form action="/Submit/" method="POST" h2 Your Info: /h2 ul li label First Name: @Html.TextBoxFor(m = m.FirstName) /label /li li label Last Name: @Html.TextBoxFor(m = m.LastName) /label /li /ul h2
我有一个包含3个不同部分的表单,看起来像这样:
<form action="/Submit/" method="POST"> <h2> Your Info: </h2> <ul> <li> <label> First Name: @Html.TextBoxFor(m => m.FirstName) </label> </li> <li> <label> Last Name: @Html.TextBoxFor(m => m.LastName) </label> </li> </ul> <h2> Membership: </h2> <ul> <li> <label>@Html.RadioButtonFor(m => m.MembershipLength_Months,3) 3 Months</label> </li> <li> <label>@Html.RadioButtonFor(m => m.MembershipLength_Months,12) 12 Months</label> </li> </ul> <h2> Billing Info: </h2> @Html.EditorFor(m=> m.PaymentInfo) <input type="submit" value="Submit" /> </form> 我想做的是每个部分都有一个摘要.我知道我可以在每个H2下做这样的事情: @if (ViewData.ModelState.Keys.Contains("FirstName") || ViewData.ModelState.Keys.Contains("LastName")) { <div> summary text @Html.ValidationMessageFor(m => m.FirstName) @Html.ValidationMessageFor(m => m.LastName) </div> } 但感觉应该有一个更清洁的解决方案. Google完全失败了,我无法找到自定义帮助程序或验证摘要扩展程序,它使用集合来表示要汇总的属性. 每个部分都包含大量字段,因此ModelState.Keys比较很快就会变得非常难看.有干净的方法吗? 解决方法
是的,您可以编写一个自定义的,可重用的HTML帮助程序来完成此任务: public static class HtmlExtensions { public static IHtmlString Summary<TModel>( this HtmlHelper<TModel> html,params Expression<Func<TModel,object>>[] expressions ) { var div = new TagBuilder("div"); var sb = new StringBuilder(); foreach (var expression in expressions) { var unary = expression.Body as UnaryExpression; if (unary != null && unary.NodeType == ExpressionType.Convert) { var lambda = Expression.Lambda(unary.Operand,expression.Parameters); sb.AppendLine(html.ValidationMessage(ExpressionHelper.GetExpressionText(lambda)).ToHtmlString()); } else { sb.AppendLine(html.ValidationMessageFor(expression).ToHtmlString()); } } div.InnerHtml = sb.ToString(); return new HtmlString(div.ToString()); } } 可以像这样使用: <h2> Your Info: @Html.Summary( x => x.FirstName,x => x.LastName ) </h2> 帮助程序允许您列出要包含在摘要中的任何属性作为验证错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – GridView BoundField打破长字符串
- asp.net-mvc – 在哪里?Json.Encode或@Json.Decode方法在M
- asp.net-mvc – 用于枚举下拉列表的自定义MVC模板
- asp.net-mvc – 如何将HTML5表单操作链接到ASP.NET MVC 4中
- asp.net – 在打开silverlight项目之前,您需要安装最新的Si
- asp.net – aspx radiobutton控制列表在一行中
- asp.net-core – Services.AddOptions()含糊不清
- 我可以在Razor中使用@helper语法返回一个字符串吗?
- asp经典 – ASP检查请求方法
- ASP.NET报告系统
推荐文章
站长推荐
- asp.net – CORS错误 – 请求的资源上没有“Acce
- asp.net-mvc – 使用Knockout JS MVC服务器端模型
- asp.net – 什么是Thread.CurrentPrincipal,它有
- asp.net – HttpServerUtility.UrlPathEncode vs
- asp.net – 在会话中存储用户ID
- asp.net-mvc – 如何在ASP.net MVC 4 RouteConfi
- asp.net-mvc-3 – 实体框架代码优先:“ObjectSt
- asp.net-mvc – 使用WCF进行ASP表单身份验证?
- 适用于ASP.NET的SaaS入门套件,涵盖订阅,计费等
- asp.net-mvc-4 – @ *在CSHTML文件中的含义是什么
热点阅读