我在 ASP.NET MVC 中创建了这个自定义路由类:
public class UserAgentConstraint:IRouteConstraint {
private string RequiredUserAgent;
public UserAgentConstraint(string agentParam) {
RequiredUserAgent = agentParam;
}
public bool Match(HttpContextBase httpContext, Route route, string parameterName,
RouteValueDictionary values, RouteDirection routeDirection) {
return httpContext.Request.UserAgent != null && !httpContext.Request.UserAgent.Contains(RequiredUserAgent);
}
}
在 Global.asax.cs 中:
public static void RegisterRoutes(RouteCollection routes) {
routes.MapRoute("myRoute2", "{controller}/{action}/{Id}",
new { controller = "home", action = "index", Id = UrlParameter.Optional }, new {
customConstriant=new UserAgentConstraint("IE")
}
}
上面的代码运行良好,但是当用户使用 IE 时,我得到一个 404 错误。我想重定向到自定义页面。我不想在Web.Config
文件中使用自定义错误,因为我的错误仅适用于 IE。怎么能做到这一点?
谢谢你的建议。