表单值不改变对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); 

也许它仍然包含旧帐值,并试图重新填充相应的模型......

+0

我将如何传递NextId和listName参数?似乎不能找到一个方法签名.. – qui 2009-08-26 14:13:38

+1

一个建议是将它们包装在一个特定的模型类,很像Scott Guthrie的Nerddinner应用程序中的DinnerFormViewModel。你可以在这里找到更多的信息http://nerddinnerbook.s3.amazonaws.com/Part6.htm – Robban 2009-08-26 18:56:23