为什么我必须使用TextBoxFor将值发布回我的控制器?

时间:2013-11-18 13:17:08

标签: asp.net-mvc

我正在尝试将模型发布回我的控制器。我不确定为什么TextBoxFor工作而TextBox没有。

@ModelType Models.myModel
@Code
    ViewData("Title") = "Foo"
End Code

@Using (Html.BeginForm())
@Html.AntiForgeryToken()

@Html.TextBoxFor(Function(m) m.Value)         <--- works
@Html.TextBox(Model.Value)                    <--- does not work
@Html.TextBox("Value", Model.Value)           <--- works! (per answer below)


@<input type="submit" value="Save" />

End Using

1 个答案:

答案 0 :(得分:1)

Html.TextBoxFor使用正确的名称值创建正确的输入类型=“text”。你不能使用它,但在这种情况下它会有所帮助。即使使用html代码也可以实现相同的结果:

<input type="text" name="Value" value="@Model.Value" />

asp.net mvc模型绑定器的要点是html控件的正确名称。 Html.TextBox()也使用第一个参数作为html元素名称,所以正确使用它应该是Html.TextBox(“Value”,Model.Value)