我正在使用强类型模型来表达我的观点。我有一个禁用的文本框,我使用 javascript 更新其值。文本框是使用这个渲染的
<%: Html.TextBoxFor(model => model.TotalAmount, new { disabled = "disabled"})%>
这将呈现一个文本框,其中 NAME 和 ID 为“TotalAmount”。 TotalAmount 也是我的模型上绑定到此视图的属性。
在视图中更新其值的 javascript 在其函数中如下所示:
document.getElementById('TotalAmount').value = {assigning new value here};
该函数确实被调用,当我更改另一个可编辑文本框中的某些值时,我可以看到禁用文本框中的值。但是,当我将此表单发布到我的操作方法时,如下所示:
[HttpPost]
public ActionResult Process (ProcessVM FormPostVM)
{
}
禁用的文本框属性 [TotalAmount] 仍然具有旧值,但我修改的可编辑文本框包含我输入的新值。为什么禁用的文本框不包含 JavaScript 更新值?
我尝试使用
ModelState.Remove("TotalAmount");
在上面的操作方法中,但正如我已经认为它不起作用。
有什么线索、提示吗?
谢谢你的时间....
HTML 输入元素,例如具有以下内容的文本框disabled="disabled"
提交表单时,属性永远不会将其值发送到服务器。如果您想将值发送到服务器,同时仍然禁止用户更改它,您可以创建文本框readonly
:
<%= Html.TextBoxFor(model => model.TotalAmount, new { @readonly = "readonly" }) %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)