mvc 3 Html.EditorFor添加Html属性无效
本文关键字:Html 属性 无效 添加 EditorFor mvc | 更新日期: 2023-09-27 18:00:49
我尝试为EditorFor 添加html属性
@Html.EditorFor(model => model.UserName, new { style = "width: 100px" })
但无论如何我都能得到
<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">
如果你需要改变的只是宽度的显示,并且你不依赖任何编辑器模板,那么最简单的解决方案是使用TextBoxFor代替
@Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })
我遇到了同样的问题,这解决了它…
<style type="text/css">
#UserName {
width: 100px;
}
</style>
@Html.EditorFor(model => model.UserName)
@Html.EditorFor()
根据模型元素动态决定使用的控件类型。
这些自定义与@Html.TextBoxFor()
的@Html.LabelFor()
一起工作。以下代码已经过测试,并且运行正常。
剃刀:
@Html.LabelFor(model => model.UserName, null, new { style = "display: inline;" })
@Html.TextBoxFor(model => model.UserName, null, new { style = "display: inline;" })
生成的HTML
<label style="display: inline;" for="UserName">
<input name="LastActivityDate" id="UserName" style="display: inline;" type="text" value=""/>
请注意,传递的第二个参数是null
,style是第三个属性。如果必须使用@Html.EditorFor()
,则必须使用CSS类而不是样式
MSDN 上的@Html.EditorFor()
注意:该代码已经用MVC4进行了测试,希望它对MVC3和都有效
而不是使用
@Html.EditorFor(model=>model.UserId(
使用
@Html.TextBoxFor(model=>model.UserId,new{@Value="Prabhat"}(
值得一提的是,我也遇到了同样的问题。我使用一个与Narenda V的解决方案略有不同的版本来解决这个问题。
我创建了一个这样的类:(注意-最小宽度而不是宽度(
.userName { min-width:40em; }
那么在我看来:
@Html.EditorFor(model => model.UserName, new { @class = "userName" })
当我不使用最小宽度,但使用宽度时,它不起作用。Bob
如果您需要使用EditorFor而不是TextBoxFor,并且页面上有多个编辑器,但只需要更改特定编辑器的宽度。。。最简单的方法是将css样式添加到类ID中,如下所示:
<style type="text/css">
input#UserName { width: 100px; }
</style>
您可以在.css中创建类似的样式类
.userName
{
width: 150px;
}
样式可以与html类属性一起应用。
@Html.EditorFor(model => model.UserName, new { @class = "userName" })