无法将 Bootstrap 类 应用到我的 EditorFor
unable to apply Bootstrap classes to my EditorFor
我正在开发一个 asp.net mvc-5 网络应用程序,我写了以下内容 :-
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
&
@Html.EditorFor(model => model.Name, new { @class = "form-control" })
但这不会对生成的 html 产生任何影响,但如果我将 EditorFor
更改为 TextboxFor
我将获得表单控制的效果 class ?有人可以就此提出建议吗?我读到这仅在 asp.net mvc 5.1 中受支持?那么,除了将我的 asp.net mvc-5 升级到 asp.net mvc 5.1 以消除升级风险之外,我可以采用哪些可用方法来使它正常工作?
任何人都可以建议吗?
是的,要将 html 属性传递给标准 EditorFor()
,您需要 MVC-5.1+。如果你想用 MVC-5 复制它,你可以创建一个自定义编辑器模板并使用接受 additionViewData
的重载传递属性。例如,创建一个名为 "String.cshtml" 的新 EditorTemplate
以将模板应用于类型为 string
的所有属性
/Views/Shared/EditorTemplates/String.cshtml
@Html.TextBoxFor(m => m, ViewData["attributes"])
并在视图中
@Html.EditorFor(m => m.Name, new { attributes = new { @class = "form-control" } })
或创建特定的EditorTemplate
/Views/Shared/EditorTemplates/MyCustomTemplate.cshtml
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, ViewData["htmlAttributes"])
并在视图中
@Html.EditorFor(m => m.Name, "MyCustomTemplate", new { attributes = new { @class = "form-control" } })
第二个示例展示了如何遵守上面评论中提到的 DisplayFormat
属性,例如
[DisplayFormat(DataFormatString="{0:C}", ApplyFormatInEditMode = true)]
public decimal Amount { get; set; }
会将值格式化为货币字符串。
This answer 还提供了一些其他选项,包括创建用于呈现 bootstrap 控件的自定义 html 帮助程序
这个有效:
@Html.EditorFor(x => x.Created, new { htmlAttributes = new { @class = "date" } })
我正在开发一个 asp.net mvc-5 网络应用程序,我写了以下内容 :-
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
&
@Html.EditorFor(model => model.Name, new { @class = "form-control" })
但这不会对生成的 html 产生任何影响,但如果我将 EditorFor
更改为 TextboxFor
我将获得表单控制的效果 class ?有人可以就此提出建议吗?我读到这仅在 asp.net mvc 5.1 中受支持?那么,除了将我的 asp.net mvc-5 升级到 asp.net mvc 5.1 以消除升级风险之外,我可以采用哪些可用方法来使它正常工作?
任何人都可以建议吗?
是的,要将 html 属性传递给标准 EditorFor()
,您需要 MVC-5.1+。如果你想用 MVC-5 复制它,你可以创建一个自定义编辑器模板并使用接受 additionViewData
的重载传递属性。例如,创建一个名为 "String.cshtml" 的新 EditorTemplate
以将模板应用于类型为 string
/Views/Shared/EditorTemplates/String.cshtml
@Html.TextBoxFor(m => m, ViewData["attributes"])
并在视图中
@Html.EditorFor(m => m.Name, new { attributes = new { @class = "form-control" } })
或创建特定的EditorTemplate
/Views/Shared/EditorTemplates/MyCustomTemplate.cshtml
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, ViewData["htmlAttributes"])
并在视图中
@Html.EditorFor(m => m.Name, "MyCustomTemplate", new { attributes = new { @class = "form-control" } })
第二个示例展示了如何遵守上面评论中提到的 DisplayFormat
属性,例如
[DisplayFormat(DataFormatString="{0:C}", ApplyFormatInEditMode = true)]
public decimal Amount { get; set; }
会将值格式化为货币字符串。
This answer 还提供了一些其他选项,包括创建用于呈现 bootstrap 控件的自定义 html 帮助程序
这个有效:
@Html.EditorFor(x => x.Created, new { htmlAttributes = new { @class = "date" } })