我在ASP.NET MVC 5项目中有一个控制器,它返回Redirect(url)的结果,其中url是一个字符串。
基本上我有这个:
''
浏览器中的结果是加载如下网址:http://example.com/calendar/addevent#
这在IE中很好用,但是由于'#',Chrome会滚动到页面底部寻找锚点。
有关如何在网址末尾不包含“#”的想法吗?
2015年10月21日更新
这是使用单用户身份验证在模板MVC 5项目中找到的Account控制器中从此方法返回的:
print ''
Url.IsLocalUrl为true,如果我调试并读取从Redirect返回的对象(returnUrl),则URL没有“#”。浏览器仍以某种方式获得它......
答案 0 :(得分:0)
你可以使用如下的Url.Action:
var url = Url.Action("ActionName" ,"ControllerName");
return Redirect(url);
或者
return RedirectToAction("ActionName" ,"ControllerName");
答案 1 :(得分:0)
由于Google的OAuth响应,我发现这种情况正在发生。他们在回复中的查询字符串以'#'结尾。因此,Account控制器中的Redirect方法返回302响应,该响应正确地保留了哈希。好的比喻 - > https://stackoverflow.com/a/5283528/2354959
所以ASP.NET MVC控制器正常工作......
答案 2 :(得分:-1)
参见示例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]);
}