在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没有'#'。浏览器仍然可以读取…
您可以使用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]);
}