我的模型有一个“输出”属性,我的表单有一个名为“输出”的TextBox,拼写完全相同。当我填写表格并发布时,返回的视图会产生意外结果。
具体来说,我收到发布的“输出”表单变量,然后在Controller方法中将其绑定到我的模型,然后在将模型传递回视图之前将此变量更改为其他值。
发布的输出属性是“一件事” 我的Model属性设置为“another”
我的代码中有这个:<%= Html.TextBox("output") %>
呈现此内容:<input id="output" name="output" type="text" value="one thing" />
但是,在调试时,模型 包含正确的值(“另一个”)。
使用已发布的值而不是控制器中指定的值。任何想法为什么以及如何解决它?
答案 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