我有一个ASP MVC表单,它更新业务对象,然后它的操作转到另一个页面。
这两个页面都有一个带有ID“描述”的textarea,当它转到另一页时,由于未知的原因,它填写了在表单提交之前输入的值。
答案 0 :(得分:2)
您使用哪种方法更新对象?您是否尝试在ID中添加对象类型名称?
Like,Product.Description而不仅仅是Description。
答案 1 :(得分:1)
我不知道你在做什么,我会说ViewData的模型上有一个'Description'属性。 ASP.NET MVC将尝试将您的表单值与ViewData中的值(包括Model)进行匹配。您可以像Chad所说的那样直接重命名控件或引用对象。例如Product.Description
有了更多细节,有人可能会提供更多帮助。
答案 2 :(得分:0)
如果没有看到您的控制器操作,这是一个猜测工作,但它是如何进入另一个页面的?
如果在post控制器中返回不同的视图(或返回另一个返回视图的操作等),则可能是ModelState正在使用上一个表单提交中的尝试值,这是预期的行为(它是如何验证系统和模型绑定起作用)。如果您要将它们发送到其他表单,请使用RedirectResult进行下一个操作,并根据需要使用TempData进行转换时需要保留的任何状态。
如果可能,我还建议使用强类型助手,例如Html.TextAreaFor(x => x.Description)
答案 3 :(得分:-1)
<p><label>Description</label><br /><br /><%=Html.TextArea("Description", new { style = "width:470px;" })%></p>
为了澄清,我将从“编辑项目”页面转到“添加问题”页面