2010-08-05 93 views
18

我想从MVC中更改“编辑器”文本框的样式,特别是我想让文本框变大。asp.net mvc将css添加到editorfor?

我试过用几种方法添加css,无济于事。

包括:

<td class="myCss"><%=Html.EditorFor(x => x.NickName)%></td> 

<td class="myCss"><%=Html.EditorFor(x => x.NickName, new { @class = "myCss" })%></td> 

帮助请!

+0

可能的dup [asp.net mvc 2 EditorFor()和html属性](http://stackoverflow.com/questions/1625327/asp-net-mvc-2-editorfor-and-html-properties) – RedFilter 2010-08-05 20:22:48

+0

是EditorFor一个“要求“或者你打开试图'TextBoxFor' /'TextAreaFor'? – 2011-07-13 17:18:35

+0

我不敢相信你不能以一种整洁的方式做到这一点! – 2013-01-18 15:49:43

回答

2

试试这个

<%= Html.TextBoxFor(x => x.NickName, new { @class = "myCss" })%> 

<%= Html.TextAreaFor(x => x.NickName, new { cols = "40%", @class = "myCss" })%> 

现在因为MVC知道使用什么类型(文本区),你可以定义你的属性。

+2

我低估了1,因为他特别说他想改变EditorFor行为,而不是TextBoxFor。 – 2011-06-25 13:38:49

+0

我对原始问题发表了评论,询问'EditorFor'是否为**要求**。 – 2011-10-22 21:48:18

8

robh,

你很难从你的问题知道你是否正在寻找您的项目中的“通用”或具体的解决方案。因此,我打算一次解决通用作品,解决方案无处不在。

这需要采取几个步骤(约定优于配置)。基本上这里的真实需要什么:

  • 下创建新文件夹 '则须─>共享称为编辑模板'
  • 创建一个新的usercotrol(ASCX)文件 下那个叫 'string.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> 

这将ñ ow使所有基于'string'的EditorFor()调用使用这个'模板'。只需让该类的“新编辑字段”反映出该字段所需的CSS样式即可。显然,根据自己的要求做饭(即你可能不希望LabelFor达等)。

希望这有助于 - 我不得不说,这只是其中一个方法来做到这一点(但是我的首选方式)。

享受EditorFor的

吉姆

0

将结果与它的一些类属性的DIV里面,和风格定义为这个类中,使用!重要的指导强迫接受所需的值,以任何DIV中。

+1

这在MVC4中并不适用于我。 DIV上的style属性仍然没有。 – atconway 2012-08-16 14:15:17

0

试试这个,

https://stackoverflow.com/a/4249988/505474

从上面的链接复制,

@model DateTime? 

@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" }) 

它为我的作品...

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;}

+0

如果你正在使用一个预先提供的Css类的框架,你真的需要在editorfor中添加一个类(所以textboxfor似乎是解决方案。) – Jimmyt1988 2014-04-16 09:10:23