禁用时 TextBoxFor 值未传递给模型
Posted
技术标签:
【中文标题】禁用时 TextBoxFor 值未传递给模型【英文标题】:TextBoxFor value not passed to model when disabled 【发布时间】:2016-01-26 20:50:48 【问题描述】:我有一个禁用的输入字段显示来自模型的数据。
<div class="form-group">
@html.LabelFor(model => model.first_name, "Förnamn", new
@for = "inputFirstname",
@class = "col-lg-3 control-label"
)
<div class="col-lg-9">
@Html.TextBoxFor(model => model.first_name, new
@type = "text",
@class = "form-control",
@id = "inputFirstname",
text = Html.DisplayNameFor(model => model.first_name),
disabled="disabled"
)
</div>
</div>
我可以将此数据提交给控制器方法:
[HttpPost]
public ActionResult Index(RegistrationModel RegistrationModelViewModel)
当我添加disabled="disabled"
时,first_name 数据为空,如果我删除它,我会得到正确的数据。
我做错了什么?
【问题讨论】:
先问问自己,为什么希望禁用字段中的数据首先传递给模型? How do I submit disabled input in ASP.NET MVC?的可能重复 【参考方案1】:如果您还想显示数据,您可能需要使用 readonly 属性:
@Html.TextBoxFor(model => model.first_name, new
@readonly = "readonly"
)
【讨论】:
【参考方案2】:您需要在与禁用字段匹配的页面上添加<input type="hidden" name="whateverName" />
。默认不会发送到服务器。
【讨论】:
以上是关于禁用时 TextBoxFor 值未传递给模型的主要内容,如果未能解决你的问题,请参考以下文章