[英]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.