如何從MVC3模型設置文本框的寬度,假設我的模型之後,如何設置文本框的寬度MVC3模型
public class MVCMODEL
{
[Required]
public int Name{ get; set; }
}
我想,當這個文本框在視圖呈現其寬度爲800px
如何在模型中添加自定義樣式?
謝謝,
如何從MVC3模型設置文本框的寬度,假設我的模型之後,如何設置文本框的寬度MVC3模型
public class MVCMODEL
{
[Required]
public int Name{ get; set; }
}
我想,當這個文本框在視圖呈現其寬度爲800px
如何在模型中添加自定義樣式?
謝謝,
你不能從模型做到這一點。在MVC中,模型是數據結構的表示,它與您要發送到頁面的信息相對應。 MVC的重點是將網站的美學與實際運行的邏輯分開。爲了設置視圖的視覺方面,你需要改變視圖的CSS。
您不能這樣做,因爲它是一種特定的佈局行爲,所以您應該根據需要在視圖上設置width
。這樣的事情就解決了夜的問題:
@Html.TextBoxFor(model => model.Name, new { style = "width: 800px;"})
雖然你可以添加自己的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
控制與所有其他的答案同意......你還可以定義最大長度您的字段在模型中爲:
public class MVCMODEL
{
[Required]
[MaxLenght(300)] // number of characters allowed in this field.
public int Name{ get; set; }
}
您可能寫出像這樣的東西。
:<%= Html.TextBoxFor(M => m.Name,新的{大小= 4})%>