asp.net – 使用EditorFor和Twitter Bootstrap来呈现表单标签,输
发布时间:2020-12-16 03:54:22 所属栏目:asp.Net 来源:网络整理
导读:我已经重写了默认编辑器模板(Object.ascx)以生成表单(正文) HTML,该表格遵循Twitter Bootstrap的指南( http://twitter.github.io/bootstrap/base-css.html#forms),该指南通过Html.EditorForModel()执行. @if (ViewData.TemplateInfo.TemplateDepth 1) { @(Mo
我已经重写了默认编辑器模板(Object.ascx)以生成表单(正文)
HTML,该表格遵循Twitter Bootstrap的指南(
http://twitter.github.io/bootstrap/base-css.html#forms),该指南通过Html.EditorForModel()执行.
@if (ViewData.TemplateInfo.TemplateDepth > 1) { @(Model == null ? ViewData.ModelMetadata.NullDisplayText : ViewData.ModelMetadata.SimpleDisplayText) } else { foreach (var property in ViewData.ModelMetadata.Properties.Where(m => m.ShowForEdit @*&& m.ModelType != typeof (System.Data.EntityState)*@ && !m.IsComplexType && !ViewData.TemplateInfo.Visited(m))) { if (property.HideSurroundingHtml) { @Html.Editor(property.PropertyName) } else { <div class="control-group @(!ViewData.ModelState.IsValidField(property.PropertyName) ? "error" : ViewData.ModelState.ContainsKey(property.PropertyName) ? "success" : "" )"> @if (!string.IsNullOrEmpty(Html.Label(property.PropertyName).ToHtmlString())) { @Html.Label(property.GetDisplayName() + (property.IsRequired ? " *" : ""),new { @class = "control-label" }) } <div class="controls"> @Html.Editor(property.PropertyName) @Html.ValidationMessage(property.PropertyName,"*",new { @class = "help-inline" }) </div> </div> } } } 除非我想调整表单(例如更改排序或添加字段集),否则这很有效.我基本上想将上面代码的一部分分成另一个编辑器模板,这导致了Property.ascx.这将通过Html.Editor(“{PropertyName”})或Html.EditorFor(m => m.{PropertyName})执行给定属性的标签,输入和验证消息. <div class="control-group @(!ViewData.ModelState.IsValidField(ViewData.ModelMetadata.PropertyName) ? "error" : ViewData.ModelState.ContainsKey(ViewData.ModelMetadata.PropertyName) ? "success" : "" )"> @if (!string.IsNullOrEmpty(Html.Label(ViewData.ModelMetadata.PropertyName).ToHtmlString())) { @Html.Label(ViewData.ModelMetadata.GetDisplayName() + (ViewData.ModelMetadata.IsRequired ? " *" : ""),new { @class = "control-label" }) } <div class="controls"> @Html.Editor(ViewData.ModelMetadata.PropertyName) @Html.ValidationMessage(ViewData.ModelMetadata.PropertyName,new { @class = "help-inline" }) </div> </div> 上述编辑器模板的问题在于它不会为给定类型呈现正确的输入.因此,日期/时间属性将只呈现没有type属性的普通文本框. 我是以正确的方式来做这件事的吗?我应该使用标准的HTML帮助器还是部分视图?如果是这样,我们如何处理通用性? 解决方法
MVC 5.1包含一个针对这种情况的修复,Bootstrap support for editor templates.
您可以通过提供anonmyous对象作为EditorFor的第二个参数来包含标记的其他属性 @Html.EditorFor(model => model,new { htmlAttributes = new { @class = "form-control" },}) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net core 入口程序
- asp.net-mvc – 使用ASP.Net MVC中的模型绑定器更新父/子记
- asp.net-mvc – 我想调试(设置一个断点)System.Web.Mvc.Def
- asp.net-mvc – Asp.Net MVC和Session
- asp.net-mvc – 基于声明的授权 – 如何管理声明
- asp.net-mvc – ASP .NET MVC在视图之间存储大量参数
- asp.net – 在IIS中,existingResponse =“PassThrough”是什
- asp.net-mvc – 变化:*错误地添加到http标头响应(asp.net
- asp.net – 有没有一种简单的方法可以向DataBound DropDown
- asp.net – 绕过路径遍历过滤器
推荐文章
站长推荐
热点阅读