- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经覆盖了默认编辑器模板 (Object.ascx) 以生成遵循 Twitter Bootstrap 指南 ( http://twitter.github.io/bootstrap/base-css.html#forms ) 的表单(正文) HTML,该指南通过 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 帮助程序还是部分 View ?如果是这样,我们如何处理通用性?
最佳答案
MVC 5.1 包含针对这种情况的修复,Bootstrap support for editor templates 。您可以通过提供匿名对象作为 EditorFor
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
关于asp.net - 使用 EditorFor 和 Twitter Bootstrap 来呈现表单标签、输入和验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193844/
我想获取我的项目名称的值,但警报结果始终是: Value: function(value){ return access(this, function(value){ return value ===
我有一个用于模型角色的 EditorFor 模板,如下所示。我也有用于 Date 的 EditorFor,当我直接从 View 使用 EditorFor 时它工作正常,但是当我在编辑器中使用 Edit
我有一个像这样的 EditorFor HTML 助手: @Html.EditorFor(m => m.Name, belowLevel ? disabledHtmlOptions : null) -
我的页面中有第二件事: @for (int i = 0; i @Html.EditorFor(m => Model.Option[i].Date, n
我在将 css 类添加到 HTML.EditorFor() 时遇到问题。如果有人有同样的问题,我正在网上搜索,但我找不到任何东西。 你能帮帮我吗?因此,未定义类不是 css 的问题,而是简单地说,它没
我想在我的应用程序中自动聚焦于 editorfor,但我似乎做不到。我已在文本框上成功使用自动对焦,但我想使用编辑器来保持我的应用程序的外观通用。 任何对此的解决方案将不胜感激,谢谢。 我的尝试: @
我希望我的复选框在未选中时禁用 EditorsFor,在选中时启用它们。我知道我必须使用JavaScript,我在网上找到了一些代码,但似乎它们不起作用。 这是我的查看代码: @{Html.Rende
在我看来,我有 4 个 EditorFor 字段,我想将它们设置为 DatePickers @Html.EditorFor(model => model.Date1)
我一直在尝试使用此代码在我的 EditorFor 上设置最小值和最大值: From Date: @Html.EditorFor(model => model.SelectedYearBegin, ne
假设你有一个像这样的模型: class Foo { public int A {get; set;} public int B {get; set;} } class SomeMode
到目前为止,我们可以使用 Html.EditorFor() 为数据类型动态呈现适当的模板 - 例如string、int 或自定义类型,例如“地址”。 现在我想使用 EditorFor() 来呈现一个“
昨天,经过大量测试,我得到了以下结果,可以根据 ViewBag.CanEdit 的值有选择地将 readonly 属性应用于控件; @Html.EditorFor(m => m.Location, n
使用 C# 绑定(bind)到 MVC3 中的 View 模型。 难以设置文本框的初始值,尝试在不必创建模板等的情况下这样做 有什么想法或者我必须沿着创建自定义模板的道路走下去吗? 谢谢,蒂姆 最佳答
您好,我为价格定义了一个小数字段,如下所示: [Required(ErrorMessage = "Asking Price/Rent is required.")] [Display(Name = "
这是我的 View 模型: [Required(ErrorMessageResourceType=typeof(Resources.ValidationsResources), E
有没有人写过或有办法使用属性名称而不是表达式来调用 EditorFor。 EditorFor("Code") 相对于 EditorFor(_ => _.Code) 我想写一些更通用的东西。通过创建表达
我有一个实体模型,它包含消息对象的集合,这些消息对象属于 Message 类型,具有多个属性,包括内容、MessageID、from 和 to。 我已经为 Message 类型创建了一个 Editor
我有一个具有以下属性的模型: [Required] [HiddenInput(DisplayValue = false)] public override int Id { get; set;} 现在
有没有办法为 Html.EditorFor 助手定义一个全局模板? 我想改变输出的标记,例如而不是渲染 它将呈现: 这适用于当我将 Html.EditorF
嗨,我对网页设计和语言(包括 JavaScript)还很陌生。 在强类型 cshtml View 中,是否可以仅显示基于复选框的文本字段(其中文本字段和复选框都对模型强类型化?)我创建了一个示例场景:
我是一名优秀的程序员,十分优秀!