ado*_*ojp 116 asp.net-mvc redirect routing
让我们假设我有一些页面
some.web/articles/details/5some.web/users/info/bobsome.web/foo/bar/7可以调用常见的实用程序控制器
locale/change/es 要么 authorization/login
如何获得这些方法(change,login)重定向到以前的行为(details,info,bar),而通过前面的参数给他们(5,bob,7)?
简而言之:如何在另一个控制器中执行操作后重定向到我刚刚访问过的页面?
Nat*_*ley 147
尝试:
public ActionResult MyNextAction()
{
return Redirect(Request.UrlReferrer.ToString());
}
Run Code Online (Sandbox Code Playgroud)
或者,触及达林所说的,试试这个:
public ActionResult MyFirstAction()
{
return RedirectToAction("MyNextAction",
new { r = Request.Url.ToString() });
}
Run Code Online (Sandbox Code Playgroud)
然后:
public ActionResult MyNextAction()
{
return Redirect(Request.QueryString["r"]);
}
Run Code Online (Sandbox Code Playgroud)
IUn*_*own 44
如果您想从视图中的按钮重定向,您可以使用:
@Html.ActionLink("Back to previous page", null, null, null, new { href = Request.UrlReferrer})
Run Code Online (Sandbox Code Playgroud)
Rah*_*tur 27
如果您不关心单元测试,那么您可以简单地写:
return Redirect(ControllerContext.HttpContext.Request.UrlReferrer.ToString());
Run Code Online (Sandbox Code Playgroud)
小智 9
关于如何执行此操作的建议:
.
public ActionResult Create(string returnUrl)
{
// If no return url supplied, use referrer url.
// Protect against endless loop by checking for empty referrer.
if (String.IsNullOrEmpty(returnUrl)
&& Request.UrlReferrer != null
&& Request.UrlReferrer.ToString().Length > 0)
{
return RedirectToAction("Create",
new { returnUrl = Request.UrlReferrer.ToString() });
}
// Do stuff...
MyEntity entity = GetNewEntity();
return View(entity);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(MyEntity entity, string returnUrl)
{
try
{
// TODO: add create logic here
// If redirect supplied, then do it, otherwise use a default
if (!String.IsNullOrEmpty(returnUrl))
return Redirect(returnUrl);
else
return RedirectToAction("Index");
}
catch
{
return View(); // Reshow this view, with errors
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在视图中使用重定向,如下所示:
<% if (!String.IsNullOrEmpty(Request.QueryString["returnUrl"])) %>
<% { %>
<a href="<%= Request.QueryString["returnUrl"] %>">Return</a>
<% } %>
Run Code Online (Sandbox Code Playgroud)
在Mvc中使用View 脚本中的普通html 和java脚本onclick
<input type="button" value="GO BACK" class="btn btn-primary"
onclick="location.href='@Request.UrlReferrer'" />
Run Code Online (Sandbox Code Playgroud)
这非常有效.希望帮助某人.
@JuanPieterse已经回答使用@Html.ActionLink,如果可能,有人可以评论或回答使用@Url.Action
将returnUrl参数(url编码)传递给更改和登录操作,并将内部重定向到此给定的returnUrl.您的登录操作可能如下所示:
public ActionResult Login(string returnUrl)
{
// Do something...
return Redirect(returnUrl);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142040 次 |
| 最近记录: |