我目前正在处理一个数据列表,我需要在一个视图中显示一个列表并显示每个项目可执行的相应操作,如编辑它们或删除它们。对于这个版本来说,承认它是一个特定的视图是没有问题的。我的问题是当我想删除一个项目,我有两个选择在后期的方法。在Post方法和ViewBag抑制MVC3 RedirectToAction
//Call directly the list
[HttpPost]
[Authorize]
public ActionResult Delete(int itemId)
{
// logic to delete an item
ViewBag.Error = ""; // The result of the execution
return List();
}
这种解决方案的一点是,URL不再是一样的第一个:... /名单,这是... /立即删除,我不觉得这是解决大,其他的解决方案是重定向到动作,现在url是好的,但viewBag中的错误消息不再可见,你们有没有更好的主意。
不错的建议在控制器中设置ViewBag.Error = TempData [“Error”],以便视图不必关心这个细节。 – 2012-04-12 13:19:25
是的,我曾经在视图本身中拥有它,但是在视图中我有很多逻辑处理要查看的变量。我使用控制器来获取所有必要的信息并将其传递给视图。 – Joshua 2012-04-12 13:21:13
非常感谢约书亚的答案,它工作正常,并感谢阅读资源。 – Oflocet 2012-04-12 13:45:15