【问题标题】:ASP.NET MVC2 - Return to previous View from a controller actionASP.NET MVC2 - 从控制器操作返回到上一个视图
【发布时间】:2011-01-03 20:03:00
【问题描述】:

如何从控制器中的操作返回到“上一个”视图?

我有一个可以从 2 个不同的视图进行的操作。

动作可以通过两种方式:

成功 - 然后我返回到第三种不同的视图 失败 - 然后我想返回上一个视图(其中一个) - 具有相同的(旧)模型数据和包含错误的 TempData["Message"]。

我想返回发布到此操作的视图 - 如何实现此行为?

【问题讨论】:

    标签: asp.net-mvc-2


    【解决方案1】:

    您可以将以前的视图名称作为参数传递给您的操作。

    public ActionResult Edit(DataObject model, string prevAction)
    {
        if (model.IsValid)
        {
            return View("SomeView");
        }
        else
        {
            return RedirectToAction(prevAction, new { data = model });
        }
    }
    

    【讨论】:

    • 但是在我返回 View("LastViewName",Model ?) 之前需要再次构建模型
    • 你可以使用 RedirectToAction ;)
    • 不能 - 因为此方法返回一个视图(“成功”转到一个新视图)。我想在失败的情况下返回之前的视图,使用之前的数据....
    • 我认为有一个自动机制可以转到上一页 - 就像验证失败时......你的代码应该可以工作并解决这个问题,我会检查它并多看一点验证失败场景。
    【解决方案2】:

    你可以有一个查询字符串变量来保存你想要返回的位置。

    类似controller/action?returnUrl=original/route

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      相关资源
      最近更新 更多