Asp.net mvc 在asp.net mvc url中格式化查询字符串的最佳方法?
我注意到,如果您通过asp.net mvc发送一个查询字符串routevalue,那么最终所有的空格URL都编码为“%20”。当我希望将空白转换为“+”符号时,覆盖此格式的最佳方法是什么Asp.net mvc 在asp.net mvc url中格式化查询字符串的最佳方法?,asp.net-mvc,routing,Asp.net Mvc,Routing,我注意到,如果您通过asp.net mvc发送一个查询字符串routevalue,那么最终所有的空格URL都编码为“%20”。当我希望将空白转换为“+”符号时,覆盖此格式的最佳方法是什么 我正在考虑使用一个自定义路由对象或一个从IRoutHandler派生的类,但如果您有任何建议,我将不胜感激。您可以尝试编写一个自定义路由: public class CustomRoute : Route { public CustomRoute(string url, RouteValueDictio
我正在考虑使用一个自定义路由对象或一个从IRoutHandler派生的类,但如果您有任何建议,我将不胜感激。您可以尝试编写一个自定义路由:
public class CustomRoute : Route
{
public CustomRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler)
: base(url, defaults, routeHandler)
{ }
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
var path = base.GetVirtualPath(requestContext, values);
if (path != null)
{
path.VirtualPath = path.VirtualPath.Replace("%20", "+");
}
return path;
}
}
并按如下方式注册:
routes.Add(
new CustomRoute(
"{controller}/{action}/{id}",
new RouteValueDictionary(new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}),
new MvcRouteHandler()
)
);
谢谢你,达林。这太完美了。