asp.net mvc将css添加到editorfor?

hha*_*hay 18 html asp.net-mvc

我想从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)

请帮忙!

jim*_*lan 8

robh,

从您的问题中很难知道您是否在项目中寻找"通用"或特定解决方案.因此,我将解决通用 - 工作一次,适用于所有解决方案.

这需要采取一些步骤(约定优于配置).基本上这里是必要的:

  • 在'views->共享名为编辑模板 ' 下创建新文件夹
  • 在名为'string.ascx'的文件下创建一个新的usercotrol(ascx)文件

现在,按照以下方式定义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等......)

希望这会有所帮助 - 我不得不说,这只是为数不多的方法之一(但这是我的首选方式).

请享用

吉姆


Cha*_*ell 2

尝试这个

<%= 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)。

  • 我投了 1 票,因为他明确表示他想更改 EditorFor 的行为,而不是 TextBoxFor。 (2认同)