2012-04-13 67 views
2

中我尝试使用你如何重定向到一个锚特定操作

return RedirectToAction("List#"+Name.Substring(0,1)); 

但我得到一个404错误,并在地址栏中提示,我要找名单%23A。

编辑 “List”是动作名称,我想直接重定向到第一个字母定位符。

如何传递数字符号?

+0

你确实有一个动作命名为 “列表#的东西”? – 2012-04-13 19:58:49

+0

他可能会尝试移动到锚点... – Servy 2012-04-13 19:59:35

+1

我意识到这一点,但该方法需要一个操作名称,而不是一个操作名称和任意额外的数据添加到URL。 – 2012-04-13 20:00:20

回答

1

你可以使用GenerateUrl静态方法:

public ActionResult Foo() 
{ 
    string url = UrlHelper.GenerateUrl(
     null,      // routeName 
     "List",     // actionName 
     null,      // controllerName 
     null,      // protocol 
     null,      // hostName 
     "abc",     // fragment <- that's what you are interested in 
     null,      // routeValues 
     RouteTable.Routes,  // routeCollection 
     Request.RequestContext, // requestContext 
     true      // includeImplicitMvcValues 
    ); 
    return Redirect(url); 
} 

应该重定向到:

/currentController/List#abc