0

我想知道如何签入一个动作,我从哪个视图对其进行了 POST。因此,在操作完成后,我可以返回到同一个视图。

像:

if (enteredfromView1)
{
    return RedirectToAction("View1","Controller");
}
else
    return RedirectToAction ("View2","Controller");
4

3 回答 3

2

您可以使用 Request.UrlReferrer 来实现这一点。

public ActionResult TryMeOut()
{
   TempData["ReturnPath"] = Request.UrlReferrer.ToString();
   //return your users to the correct view.
}

如果这不是您想要的,那么您应该看看这篇文章。也许这可以帮助你:在控制器中获取视图名称,ASP.NET MVC

于 2012-10-10T11:50:23.470 回答
0

如果您的操作是动态的(因为多个视图可以重定向到同一个操作),您可以使用请求的 UrlReferrer 属性。更多信息可以在MSDN 站点上找到。您将不得不实现一个Redirect("URL"),或者解析 URL 以推断控制器和视图。

于 2012-10-10T11:47:04.377 回答
0

在表单中添加一个隐藏的输入来指示视图的名称。

<input type="hidden" id="ViewName" name="ViewName" value="View1" />

然后在您的操作中使用Request.Form["ViewName"]来检索它。

string viewName = Request.Form["ViewName"];

switch (viewName)
{
    case "View1":
        return RedirectToAction("View1","Controller");

    case "View2":
        return RedirectToAction("View2","Controller");

    // ...

    default:
        return RedirectToAction("SomeDefault", "Controller");
}    
于 2012-10-10T12:04:59.647 回答