表单值不改变对ASP MVC
问题描述:
我有一个编辑的形式,即贴的时候,如果成功的话应该移动到下一个记录表单值不改变对ASP MVC
这里是控制器的代码片段:
if (issues.Count == 0)
{
Service.Save(item);
Service.SaveChanges();
return Edit(NextId, listingName);
}
else
{
ModelState.AddRuleViolations(issues);
}
return Edit(item.id, listingName);
下一条记录的id已正确传递给操作,但自动生成的表单仍旧具有旧项目的值,而不是新项目的值。我已经调试它,并且该项目正在加载并传递给视图罚款。
答
尝试做的,而不是直接返回查看一个RedirectToAction。
return RedirectToAction("Edit", new { id = NextId, listingName = listingName });
此外,您在这两种情况下(验证错误和成功)发送的listingName
相同的值。它是否正确?
答
你试过显式返回Edit View而不是返回方法调用吗?
像这样:
return View("Edit", NextId);
也许它仍然包含旧帐值,并试图重新填充相应的模型......
我将如何传递NextId和listName参数?似乎不能找到一个方法签名.. – qui 2009-08-26 14:13:38
一个建议是将它们包装在一个特定的模型类,很像Scott Guthrie的Nerddinner应用程序中的DinnerFormViewModel。你可以在这里找到更多的信息http://nerddinnerbook.s3.amazonaws.com/Part6.htm – Robban 2009-08-26 18:56:23