2012-12-04 33 views
0

如何從MVC3模型設置文本框的寬度,假設我的模型之後,如何設置文本框的寬度MVC3模型

public class MVCMODEL 
{ 
    [Required] 
    public int Name{ get; set; } 
} 

我想,當這個文本框在視圖呈現其寬度爲800px如何在模型中添加自定義樣式?

謝謝,

回答

3

你不能從模型做到這一點。在MVC中,模型是數據結構的表示,它與您要發送到頁面的信息相對應。 MVC的重點是將網站的美學與實際運行的邏輯分開。爲了設置視圖的視覺方面,你需要改變視圖的CSS。

1

您不能這樣做,因爲它是一種特定的佈局行爲,所以您應該根據需要在視圖上設置width。這樣的事情就解決了夜的問題:

@Html.TextBoxFor(model => model.Name, new { style = "width: 800px;"}) 
0

雖然你可以添加自己的DataAnnotation類型屬性的擴展,並相應地裝點你的模型/視圖模型的屬性(如每this blog post),這將是擔心一個可怕的污染IMO。

稍微好一點的是使用類似的技術,而不是渲染硬編碼寬度,而是用CSS類裝飾模型屬性,然後使用CSS來相應地控制格式。然而,純粹主義者可能仍然不同意 - 即使將CSS類應用於視圖模型也可能越過界限。

例如

[HtmlProperties(CssClass="LargeTextBox")] 
[Required] 
public int Name{ get; set; } 

的想法,呈現的HTML是

<input type="text" value="" name="Name" id="Name" class="LargeTextBox"/> 

的實際寬度,將在適當的.css

0

控制與所有其他的答案同意......你還可以定義最大長度您的字段在模型中爲:

public class MVCMODEL 
{ 
    [Required] 
    [MaxLenght(300)] // number of characters allowed in this field. 
    public int Name{ get; set; } 
} 
0

您可能寫出像這樣的東西。

:<%= Html.TextBoxFor(M => m.Name,新的{大小= 4})%>

相關問題