使用Html.TextBoxFor时,可以将文本框设置为只读吗?
我有以下标记与Html.TextBoxForexpression式,我想内容只能读取,这是可能的吗?
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>
更新.NET的现代版本@ 1c1cle的build议在评论中:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>
请意识到这不是一个“安全”的方式来做到这一点,有人可以注入JavaScript来改变这一点。
需要注意的是,如果将该readonly
值设置为false
,则实际上不会看到任何行为改变! 所以如果你需要根据一个variables来驱动它,你不能简单地在那里插入这个variables。 相反,您需要使用条件逻辑来简单地不传递该readonly
属性。
这是一个未经testing的build议,如何做到这一点(如果有这个问题,你总是可以做一个if / else):
<%= Html.TextBoxFor(model => Model.SomeFieldName, shouldBeReadOnlyBoolean ? new {{"readonly", "true"}} : null) %>
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @readonly = true })%>
使用以下内容:
@Html.TextBoxFor(m => m.Whatever, new {@readonly = "readonly"})
如果你想给它分配一个类,你可以用同样的方法,通过添加@class =“”属性。 希望这可以帮助 :)
使其只读
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @readonly="true"})
拨打
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @disabled="true"})
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new {readonly=true})%>
<%: Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @autocomplete = "off", @readonly=true})%>
这是你如何设置多个属性
这个工作对我来说…
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = "readonly" })
以下片段为我工作。
@Html.TextBoxFor(m => m.Crown, new { id = "", @style = "padding-left:5px", @readonly = "true" })
使用@Hunter的例子,在新的{..}部分,添加readonly = true,我认为这将工作。
另一种可能性:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new Dictionary<string, object>(){{"disabled", "true"}}) %>
事实上,脑电的答案几乎是正确的:
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = true })
如果你必须申请你的自定义类,你可以使用
@Html.TextBoxFor(m => m.Birthday, new Dictionary<string, object>() { {"readonly", "true"}, {"class", "commonField"} } )
在哪
commonField是CSS类
和生日可能是string字段,你可能可以用来保持jQuery Datapicker
date:)
<script> $(function () { $("#Birthday").datepicker({ }); }); </script>
这是一个真实的例子。
通过将readonly属性设置为true或false在大多数浏览器中不起作用,我已经做了如下,当页面的模式是“重新加载”,我没有包括“只读”属性。
@if(Model.Mode.Equals("edit")){ @Html.TextAreaFor(model => Model.Content.Data, new { id = "modEditor", @readonly = moduleEditModel.Content.ReadOnly, @style = "width:99%; height:360px;" }) } @if (Model.Mode.Equals("reload")){ @Html.TextAreaFor(model => Model.Content.Data, new { id = "modEditor", @style = "width:99%; height:360px;" })}
@Html.TextBoxFor(model => model.IdUsuario, new { @Value = "" + User.Identity.GetUserId() + "", @disabled = "true" }) @disabled = "true"
工作得很好