Html.TextBoxFor 未使用 HttpPost 向控制器提交值
Html.TextBoxFor not submitting a value using HttpPost to controller
这是一个简单的问题,我以前做过,但我不明白为什么它不起作用。
这是我的 HTML 帮手:
<%= Html.TextBoxFor(am => Model.Amount, new { @id = "myAmount" })%>
我使用提交按钮从同一视图提交表单:
<input id="myprocess" type="submit" value="Submit" name="myprocess">
当我调试时它会影响我的控制器:
[HttpPost]
public ActionResult ProcessCreate(myModel m)
{..code here..}
但我的模型 属性 'm.Amount' 设置为默认零。我知道这很明显,但我不明白为什么这不起作用。
您的 BeginForm 调用(或您的 <form>
)是否包装了文本框?
<% using (Html.BeginForm("ProcessCreate", "ControllerName", FormMethod.Post)) %>
<% { %>
....
<%= Html.TextBoxFor(am => Model.Amount, new { @id = "myAmount" })%>
....
<% } %>
(这可能是语法错误,我有一段时间没有在 MVC2 中工作了)。
lambda 表达式不正确。您需要将其更改为:
<%= Html.TextBoxFor(am => am.Amount, new { @id = "myAmount" })%>
感谢您的回复。我发现了问题所在。有一些 jquery 使用 maskMoney 函数将类型从十进制更改为字符串。 'Amount' 的模型类型是十进制,默认值为 0。所以我将类型更改为字符串,将其传递到我的控制器并将其解析回十进制类型。
这是一个简单的问题,我以前做过,但我不明白为什么它不起作用。
这是我的 HTML 帮手:
<%= Html.TextBoxFor(am => Model.Amount, new { @id = "myAmount" })%>
我使用提交按钮从同一视图提交表单:
<input id="myprocess" type="submit" value="Submit" name="myprocess">
当我调试时它会影响我的控制器:
[HttpPost]
public ActionResult ProcessCreate(myModel m)
{..code here..}
但我的模型 属性 'm.Amount' 设置为默认零。我知道这很明显,但我不明白为什么这不起作用。
您的 BeginForm 调用(或您的 <form>
)是否包装了文本框?
<% using (Html.BeginForm("ProcessCreate", "ControllerName", FormMethod.Post)) %>
<% { %>
....
<%= Html.TextBoxFor(am => Model.Amount, new { @id = "myAmount" })%>
....
<% } %>
(这可能是语法错误,我有一段时间没有在 MVC2 中工作了)。
lambda 表达式不正确。您需要将其更改为:
<%= Html.TextBoxFor(am => am.Amount, new { @id = "myAmount" })%>
感谢您的回复。我发现了问题所在。有一些 jquery 使用 maskMoney 函数将类型从十进制更改为字符串。 'Amount' 的模型类型是十进制,默认值为 0。所以我将类型更改为字符串,将其传递到我的控制器并将其解析回十进制类型。