通过javascript更新的asp.net mvc禁用文本框不会发布新值

use*_*358 6 asp.net-mvc asp.net-mvc-3

我正在使用强类型模型来查看.我有一个禁用的文本框,其值我使用javascript更新.使用此文本框进行渲染

<%: Html.TextBoxFor(model => model.TotalAmount, new { disabled = "disabled"})%>
Run Code Online (Sandbox Code Playgroud)

这会将带有NAME和ID的文本框呈现为"TotalAmount".TotalAmount也是我的模型上绑定到此视图的属性.

在视图中更新其值的javascript在其函数中是这样的:

document.getElementById('TotalAmount').value = {assigning new value here};
Run Code Online (Sandbox Code Playgroud)

函数确实被调用,当我在另一个可编辑的文本框中更改某个值时,我可以在禁用的文本框中看到该值.但是,当我将此表单发布到我的操作方法时,如下所示:

[HttpPost]
public ActionResult Process (ProcessVM FormPostVM)
{
}
Run Code Online (Sandbox Code Playgroud)

已禁用的文本框属性[TotalAmount]仍具有旧值,但我修改的可编辑文本框包含我输入的新值.为什么禁用的文本框不包含javascript更新值?

我试过用

ModelState.Remove("TotalAmount");
Run Code Online (Sandbox Code Playgroud)

在上面的动作方法中,但正如我已经认为它不起作用.

任何线索,提示?

谢谢你的时间....

Dar*_*rov 25

HTML输入元素(例如具有该disabled="disabled"属性的文本框)在提交表单时永远不会将其值发送到服务器.如果要将值发送到服务器,同时仍禁止用户更改它,则可以创建文本框readonly:

<%= Html.TextBoxFor(model => model.TotalAmount, new { @readonly = "readonly" }) %>
Run Code Online (Sandbox Code Playgroud)