Unable To Apply Bootstrap Classes To My Editorfor
Solution 1:
Yes, to pass html attributes to a standard EditorFor()
you need MVC-5.1+. If you want to replicate this with MVC-5, you can create a custom editor template and pass the attributes using the overload that accepts additionViewData
. For example, create a new EditorTemplate
named "String.cshtml" to apply the template for all properties that are typeof string
/Views/Shared/EditorTemplates/String.cshtml
@Html.TextBoxFor(m => m, ViewData["attributes"])
and in the view
@Html.EditorFor(m => m.Name, new { attributes = new { @class = "form-control" } })
or create a specificEditorTemplate
/Views/Shared/EditorTemplates/MyCustomTemplate.cshtml
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, ViewData["htmlAttributes"])
and in the view
@Html.EditorFor(m => m.Name, "MyCustomTemplate", new { attributes = new { @class = "form-control" } })
The second example shows how to respect the DisplayFormat
attribute as mentioned in your comments above, for example
[DisplayFormat(DataFormatString="{0:C}", ApplyFormatInEditMode = true)]
publicdecimal Amount { get; set; }
will format the value as a currency string.
This answer also gives some other options including creating a custom html helper for rendering bootstrap controls
Solution 2:
This works:
@Html.EditorFor(x => x.Created, new { htmlAttributes = new { @class = "date" } })
Post a Comment for "Unable To Apply Bootstrap Classes To My Editorfor"