Asp.net mvc 确定当MVC5中的不同视图请求相同视图时要调用的操作方法

Asp.net mvc 确定当MVC5中的不同视图请求相同视图时要调用的操作方法,asp.net-mvc,view,routing,action,Asp.net Mvc,View,Routing,Action,我正在处理一个MVC5项目,我有一个案例,我从不同的视图调用相同的操作/视图,我想返回到请求来自的相同视图。假设我有三个视图A、B、C,A和C都在不同的时间调用B。现在我想在B操作完成后分别返回A或C。我必须从多个动作/视图中使用此B视图,这样当B动作完成时,它将重定向到最初称为B的相应视图。我正在寻找一个通用的解决方案。最好的方法是什么。如果你们这些乐于助人的家伙能举个例子,那将非常有帮助:)我能从另一篇文章中找到答案。我把它贴在这里,以防有人遇到这个问题 要获取调用视图的操作,请使用以下命令

我正在处理一个MVC5项目,我有一个案例,我从不同的视图调用相同的操作/视图,我想返回到请求来自的相同视图。假设我有三个视图A、B、C,A和C都在不同的时间调用B。现在我想在B操作完成后分别返回A或C。我必须从多个动作/视图中使用此B视图,这样当B动作完成时,它将重定向到最初称为B的相应视图。我正在寻找一个通用的解决方案。最好的方法是什么。如果你们这些乐于助人的家伙能举个例子,那将非常有帮助:)

我能从另一篇文章中找到答案。我把它贴在这里,以防有人遇到这个问题

要获取调用视图的操作,请使用以下命令

ViewContext.RouteData.GetRequiredString("action");
ViewContext.RouteData.GetRequiredString("controller");
要获取调用视图的控制器,请使用以下命令

ViewContext.RouteData.GetRequiredString("action");
ViewContext.RouteData.GetRequiredString("controller");
指向源的链接是

使用:

public ActionResult B()
{
    //do something
    return Redirect(Request.Referrer);
}
或者,尝试以下方法:

public ActionResult A()//Or C
{
    return RedirectToAction("B",
        new { r = Request.Url.ToString() });
}
然后:

这些是控制器中的通用解决方案,可满足您的需求。 如果要从视图中的按钮重定向,请使用以下命令:

<a href="@Request.UrlReferrer">B</a>

试试这个

public ActionResult Action()
  {
    return Redirect(Request.UrlReferrer.PathAndQuery);
  }

实际上我想从视图中知道哪个动作叫做视图。这有用吗?