2010-08-05 134 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