我有一个编辑表单,发布时,如果成功则应转到下一条记录
以下是控制器中代码的片段:
if (issues.Count == 0)
{
Service.Save(item);
Service.SaveChanges();
return Edit(NextId, listingName);
}
else
{
ModelState.AddRuleViolations(issues);
}
return Edit(item.id, listingName);
下一条记录的ID正确传递给操作,但自动生成的表单仍然具有旧项目的值,而不是新项目的值。我调试了它,项目正在加载并传递给视图。
答案 0 :(得分:2)
尝试执行RedirectToAction而不是直接返回View。
return RedirectToAction("Edit", new { id = NextId, listingName = listingName });
此外,在两种情况下,您都会发送相同的listingName
值(验证错误和成功)。这是对的吗?
答案 1 :(得分:1)
您是否尝试过显式返回编辑视图而不是返回方法调用?
像这样:
return View("Edit", NextId);
也许它仍然包含旧发布的值并尝试相应地重新填充模型...