1

我的模型有一个“输出”属性,我的表单有一个名为“输出”的文本框,两者的拼写完全相同。当我填写表格并发布时,返回的视图有意想不到的结果。

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

发布的输出属性是“一件事”我的模型属性设置为“另一个”

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

这导致:<input id="output" name="output" type="text" value="one thing" />

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

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

4

1 回答 1

2

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

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

并拥有一个 EditorFor 替换你的

<%= Html.TextBox("output") %>像这样<%= Html.EditorFor(p=>p.output) %>

你可以在你的控制器中做

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

一个类似的问题已经被问到here

于 2009-12-11T11:52:34.203 回答