在我们的项目中,我们在许多地方使用TextBoxFor。 我们想在任何地方设置TextBoxFor的高度和宽度,因为我们已经完成了这个。
<%= Html.TextBoxFor(x => x, new { @class = "TextBoxFor" } ) %>
.TextBoxFor
{
height:30px;
width:250px;
font-family:@Batang;
font-size:20px;
font-weight: bold;
}
是否可以将<%= Html.TextBoxFor("", new { @class = "TextBoxFor" } ) %>
放在EditorTemplate / DisplayTemplate的某个地方,而在其他地方,我们就像这样调用
<%= Html.TextBoxFor(x => x) %>
这意味着我们没有指定css类名。所以很容易维护。 有任何想法吗。感谢
更新,我创建了一个静态助手,但它有错误..
public static MvcHtmlString CustomTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes)
{
return htmlHelper.CustomTextBoxFor<TModel, TProperty>(expression, new { @class = "TextBoxFor" });
}
<%: Html.CustomTextBoxFor(m => m.Name) %>
有什么想法吗?
答案 0 :(得分:1)
是的,但您也可以创建自己的Html帮助器,然后执行Html.MyTextBoxFor(...)。
您可以下载MVC3Futures文件,其中包含默认模板的模板化版本,您可以将其放入文件夹中。您可以编辑这些以自定义使用的TextBoxFor。但是,您必须在视图中使用@Html.EditorFor(...)
而不是TextBoxFor()
。请注意,这将影响在安装模板的范围内对EditorFor的所有使用。
顺便说一句,如果你使用MVC3,我强烈建议使用Razor引擎而不是WinForms引擎。它打字较少,而且效率更高,并且它具有你不会在WinForms中获得的功能......并且它不鼓励WinForms思考。
答案 1 :(得分:-1)
如果要为所有文本输入字段应用样式,可以修改MVC模板附带的css样式。
input[type="text"]
{
border: 1px solid #ccc;
padding: 2px;
font-size: 1.2em;
color: #444;
}