在MVC 2中,如何将Html.TextBox绑定到Model属性

时间:2009-12-10 16:20:51

标签: asp.net-mvc asp.net-mvc-2

我的模型有一个“输出”属性,我的表单有一个名为“输出”的TextBox,拼写完全相同。当我填写表格并发布时,返回的视图会产生意外结果。

具体来说,我收到发布的“输出”表单变量,然后在Controller方法中将其绑定到我的模型,然后在将模型传递回视图之前将此变量更改为其他值。

发布的输出属性是“一件事” 我的Model属性设置为“another”

我的代码中有这个:<%= Html.TextBox("output") %>

呈现此内容:<input id="output" name="output" type="text" value="one thing" />

但是,在调试时,模型 包含正确的值(“另一个”)。

使用已发布的值而不是控制器中指定的值。任何想法为什么以及如何解决它?

1 个答案:

答案 0 :(得分:2)

假设您正在使用类似强类型的视图:

<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>

有一个编辑器替换你的

<%= Html.TextBox("output") %>喜欢<%= Html.EditorFor(p=>p.output) %>

你可以在你的控制器中做到

ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));

有人提出类似的问题here