我想从MVC改变'editor for'文本框的样式,特别是我想让文本框更大.
我尝试过几种方式添加CSS,但无济于事.
包含 :
<td class="myCss"><%=Html.EditorFor(x => x.NickName)%></td>
Run Code Online (Sandbox Code Playgroud)
和
<td class="myCss"><%=Html.EditorFor(x => x.NickName, new { @class = "myCss" })%></td>
Run Code Online (Sandbox Code Playgroud)
请帮忙!
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>
Run Code Online (Sandbox Code Playgroud)
现在,这将使所有基于"字符串"的EditorFor()调用使用此"模板".只需让"new-editor-field"类反映出该字段所需的css样式即可.显然,按照你自己的要求做饭(即你可能不想要LabelFor tat等......)
希望这会有所帮助 - 我不得不说,这只是为数不多的方法之一(但这是我的首选方式).
请享用
吉姆
尝试这个
<%= Html.TextBoxFor(x => x.NickName, new { @class = "myCss" })%>
Run Code Online (Sandbox Code Playgroud)
或者
<%= Html.TextAreaFor(x => x.NickName, new { cols = "40%", @class = "myCss" })%>
Run Code Online (Sandbox Code Playgroud)
现在您可以定义属性,因为 MVC 知道要使用什么类型(TextArea)。