如何从mvc3模型设置文本框宽度,假设我的模型正在关注,
public class MVCMODEL
{
[Required]
public int Name{ get; set; }
}
我希望当此文本框在视图中呈现时,其宽度将为800px
如何在模型中添加自定义样式?
谢谢,
答案 0 :(得分:3)
您不能从模型中执行此操作。在MVC中,模型是数据结构的表示,它对应于您发送到页面和从页面发送的信息。 MVC的关键在于将网站的美学与实际运行的逻辑分开。为了设置视图的可视方面,您需要更改视图的CSS。
答案 1 :(得分:1)
您无法执行此操作,因为它是特定的布局行为,因此您应根据需要在View中设置width
。这样的事情可以解决yoru问题:
@Html.TextBoxFor(model => model.Name, new { style = "width: 800px;"})
答案 2 :(得分:1)
虽然您可以添加自己的DataAnnotation
类型属性扩展并相应地修饰您的模型/视图模型属性(根据this blog post),这将是IMO关注的可怕污染。
更好的方法是使用类似的技术,而不是渲染硬编码宽度,而是使用CSS类装饰您的模型属性,然后使用CSS来相应地控制格式。然而,纯粹主义者仍然可能仍然不同意 - 即使将CSS类应用于视图模型也可能越线。
e.g。
[HtmlProperties(CssClass="LargeTextBox")]
[Required]
public int Name{ get; set; }
认为渲染的Html是
<input type="text" value="" name="Name" id="Name" class="LargeTextBox"/>
实际宽度将在适当的.css
答案 3 :(得分:0)
同意所有其他答案...您还可以在模型中定义字段的最大长度:
public class MVCMODEL
{
[Required]
[MaxLenght(300)] // number of characters allowed in this field.
public int Name{ get; set; }
}
答案 4 :(得分:0)
你可能会写这样的东西。
:&lt;%= Html.TextBoxFor(m =&gt; m.Name,new {size = 4})%&gt;