繁体   English   中英

识别从mvc 5中的不同视图请求同一视图时要调用的操作方法

[英]identify which action method to call when same view is requested from different view in mvc 5

我正在一个MVC 5项目上工作,我遇到一种情况,即我从不同的视图调用相同的操作/视图,并且我想返回请求来自的同一视图。 防爆。 假设我有三个视图A,B,C和A,C都在不同时间调用B。 现在,我想在B操作完成后分别返回A或C。 我必须从多个动作/视图中使用此B视图,以便在B操作完成时将其重定向到最初称为B的各个视图。 我正在寻找一个通用的解决方案。 最好的方法是什么。 如果有帮助的人可以举一些例子,这将非常有帮助:)

我能够从SO本身的另一篇文章中找到答案。 我将其张贴在这里,以防有人遇到这个问题。

为了得到这称为视图的操作 ,使用此

ViewContext.RouteData.GetRequiredString("action");

要获取名为View的控制器 ,请使用此

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() });
}

然后:

public ActionResult B()
{
    return Redirect(Request.QueryString["r"]);
}

这些是Controller中的通用解决方案,可以满足您的目的。 如果要从“ 视图”中的按钮重定向,请使用以下命令:

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

只需尝试一下

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM