我想从MVC更改'editor for'文本框的样式,特别是我想让文本框更大。
我尝试过几种方式添加CSS,但无济于事。
包括:
<td class="myCss"><%=Html.EditorFor(x => x.NickName)%></td>
和
<td class="myCss"><%=Html.EditorFor(x => x.NickName, new { @class = "myCss" })%></td>
帮忙!
答案 0 :(得分:8)
robh,
很难从您的问题中了解您是否在项目中寻找“通用”或特定解决方案。因此,我将解决通用 - 工作一次,适用于所有解决方案。
这需要采取一些步骤(约定优于配置)。基本上这就是所需要的:
现在,按照:
定义ascx文件<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<div class="editor-label">
<%= Html.LabelFor(model => model) %>
</div>
<div class="new-editor-field">
<%= Html.TextBoxFor(model => model) %>
<%= Html.ValidationMessageFor(model => model) %>
</div>
这将使所有基于'string'的EditorFor()调用使用此'模板'。只需让“new-editor-field”类反映出该字段所需的css样式即可。显然,按照你自己的要求做饭(即你可能不想要LabelFor tat等......)
希望这会有所帮助 - 我必须说,这只是其中一种方法之一(但这是我最喜欢的方式)。
享受
jim
答案 1 :(得分:3)
您可以使用以下内容,而不是要求输入字段直接应用该类:
<div class="editor-field myCss">
@Html.EditorFor(model => model.Nickname)
</div>
其结果大致如下HTML
<div class="editor-field myCss">
<input class="text-box single-line" data-val="true" id="Nickname" name="Nickname" type="text" value="">
</div>
然后只使用CSS规则进行适当的样式
.myCss input.text-box {font-size: 2em;}
答案 2 :(得分:2)
试试这个
<%= Html.TextBoxFor(x => x.NickName, new { @class = "myCss" })%>
或
<%= Html.TextAreaFor(x => x.NickName, new { cols = "40%", @class = "myCss" })%>
现在您可以定义属性,因为MVC知道要使用的类型(TextArea)。
答案 3 :(得分:0)
将EditorFor的结果放在一个带有一些类属性的div中,并在此类的内部样式定义中,使用!important指令强制接受所需的值到该div内的任何内容。
答案 4 :(得分:0)
试试这个,
https://stackoverflow.com/a/4249988/505474
从上面链接复制,
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
对我有用......
答案 5 :(得分:0)
尝试一下
@Html.EditorFor(p => p.Name, new { htmlAttributes = new{ @class ="my-css-class"} })