我尝试为EditorFor添加html属性
@Html.EditorFor(model => model.UserName, new { style = "width: 100px" })
但是我得到的任何方式
<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">
答案 0 :(得分:17)
EditorFor将覆盖这些属性。有关解决方法,请参阅Html attributes for EditorFor() in ASP.NET MVC。
如果您需要更改的是宽度的显示,并且您不依赖于任何编辑器模板,那么最简单的解决方法是使用TextBoxFor
@Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })
答案 1 :(得分:7)
我有同样的问题,这解决了它......
<style type="text/css">
#UserName {
width: 100px;
}
</style>
@Html.EditorFor(model => model.UserName)
答案 2 :(得分:2)
@Html.EditorFor()
根据模型元素动态决定使用的控件类型。
这些自定义设置适用于@Html.LabelFor()
@Html.TextBoxFor()
。以下代码已经过测试并且工作正常。
<强>剃刀:强>
@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类而不是样式
@Html.EditorFor()
注意:代码已经过MVC4测试,希望它对MVC3也有效
答案 3 :(得分:1)
而不是使用
@ Html.EditorFor(model =&gt; model.UserId)
使用
@ Html.TextBoxFor(model =&gt; model.UserId,new {@Value =&#34; Prabhat&#34;})
答案 4 :(得分:0)
为了它的价值,我遇到了同样的问题。我通过使用稍微不同版本的Narenda V解决方案解决了这个问题。
我创建了一个这样的类:(注意 - 最小宽度而不是宽度)
.userName { min-width:40em; }
然后在我看来:
@Html.EditorFor(model => model.UserName, new { @class = "userName" })
当我没有使用min-width,但宽度时,它不起作用。 鲍勃
答案 5 :(得分:0)
如果你需要使用EditorFor而不是TextBoxFor并且在页面上有多个编辑器,但只需要更改特定的编辑器的宽度...最简单的方法是将css样式添加到类ID中:< / p>
<style type="text/css">
input#UserName { width: 100px; }
</style>
答案 6 :(得分:-2)
您可以在.css中创建样式类,如
.userName
{
width: 150px;
}
可以使用html类属性来应用样式。
@Html.EditorFor(model => model.UserName, new { @class = "userName" })