在ASP中.. NET MVC控制器,我怎么能得到重定向(字符串URL)方法不追加'#'

本文关键字:URL 字符串 方法 追加 重定向 MVC NET ASP 控制器 怎么能 | 更新日期: 2023-09-27 18:17:52

我在ASP中有一个控制器。NET MVC 5项目,返回重定向(url)的结果,其中url是一个字符串。

实际上我有这个:

string url = "calendar/addevent";
return Redirect(url);

浏览器的结果是加载如下URL: http://example.com/calendar/addevent#

这在IE中很好,但Chrome滚动到页面底部寻找锚,因为'#'。

关于如何在URL的末尾不包含"#"有什么想法吗?

更新10/21/15

这是从使用单用户身份验证的模板MVC 5项目中的Account控制器中的方法返回的:

private ActionResult RedirectToLocal(string returnUrl)
    {
        if (Url.IsLocalUrl(returnUrl))
        {
            return Redirect(returnUrl);
        }
        return RedirectToAction("Index", "Home");
    }

Url。IsLocalUrl是true,如果我调试并读取从Redirect(returnUrl)返回的对象,URL没有'#'。浏览器仍然可以读取…

在ASP中.. NET MVC控制器,我怎么能得到重定向(字符串URL)方法不追加'#'

您可以使用Url。如下所示:

var url = Url.Action("ActionName" ,"ControllerName");
return Redirect(url);

return RedirectToAction("ActionName" ,"ControllerName");

我发现这是因为Google的OAuth响应而发生的。它们在响应上的查询字符串以"#"结尾。因此,Account控制器中的Redirect方法返回一个302响应,该响应理所当然地保留了哈希值。很好的类比-> https://stackoverflow.com/a/5283528/2354959.

所以ASP。. NET MVC控制器工作正常

参见示例Controller ActionResult

//Parameter can also be FormCollection
    public ActionResult eventview(string url){ 
           string[] splitURL=url.split('/');  //Considering URL - "calendar/addevent"
           return RedirectToAction(splitURL[1],splitURL[0]);
    }