根据条件,如何重定向到另一个 Controller 和操作,同时处理 URL 中的任何查询字符串和位置哈希。有内置的方法可以做到这一点吗?
最佳答案
浏览器在执行 HTTP 请求时从不将哈希部分发送到服务器。因此,您无法重定向并保留哈希值,因为您不知道哈希值,它从未到达服务器。一些技术包括在调用 Controller 操作之前使用 javascript,该 Controller 操作应该执行重定向并以某种方式操作 url,以便将哈希部分作为查询字符串参数发送。因此,一旦您调用此 Controller 操作,您将能够生成一个带有哈希值 GenerateUrl 的 url。方法:
public ActionResult Blah(string hash)
{
... do something
// Generate the url to redirect to using a hash
var url = UrlHelper.GenerateUrl(
null, // routeName
"Foo", // actionName
"Bar", // controllerName
null, // protocol
null, // hostName
hash, // fragment
null, // routeValues
RouteTable.Routes, // routeCollection
ControllerContext.RequestContext, // requestContext
false // includeImplicitMvcValues
);
return Redirect(url);
}
关于c# - 如何使用查询字符串和哈希重定向到另一个 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387874/