【问题标题】:MVC ReturnUrl link errorMVC ReturnUrl 链接错误
【发布时间】:2016-08-26 14:26:07
【问题描述】:

我正在 mvc 中处理 ReturnUrl,但我有一些 url 链接错误。

a href="/User/Login?returnurl=/Forum/Detail/@item.ID" 使用此链接进入登录视图并携带 returnurl 参数。

在登录页面中,我使用此代码捕获 returnurl 查询字符串

string url = Request.QueryString["returnurl"];

if (ModelState.IsValid)
{
    if (db.Users.Any(x => x.Mail == model.EMail && x.Password == model.Password && x.IsDelete == false))
    {
        FormsAuthentication.SetAuthCookie(model.EMail, true);

        if (!string.IsNullOrEmpty(url))
        {
            return RedirectToAction(url);
        }
        return RedirectToAction("Index", "Home");

点击登录后,我无法返回第一个网址。链接转这个http://localhost:61476/User/Forum/Detail/3(注意:URL中包含“用户”)

我要转回这个网址:http://localhost:61476/Forum/Detail/3

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3


    【解决方案1】:

    RedirectToAction(如您所想)将用户重定向到 Action,并接受 Action Name 作为参数,但您将 URI 传递给它。

    改用Redirect

    if(!string.IsNullOrEmpty(url))
        return Redirect(url);
    

    【讨论】:

    • 一样 :( 系统再去这个链接 :localhost:61476/User/Forum/Detail/1我要去localhost:61476/Forum/Detail/1
    • 使用您提供的代码无法进一步帮助您。如果使用Redirect 不能解决您的问题,那么您的url 变量指向了错误的地址,或者存在与您当前代码无关的问题(错误的IIS 配置、编译时错误等)。
    • 我解决了a href链接必须是这样的问题a href="/User/Login?ReturnUrl=/Forum/Detail/@item.ID
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2014-07-11
    • 2019-02-10
    相关资源
    最近更新 更多