gpt4 book ai didi

asp.net-mvc - ASP.NET MVC,操作 URL 结构

转载 作者:行者123 更新时间:2023-12-02 09:01:39 24 4
gpt4 key购买 nike

如何在 ASP.NET MVC 中创建自定义路由处理程序?

最佳答案

ASP.NET MVC 可以轻松地在 Global.asax.cs 中创建自定义路由处理程序:

    routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { action = "Index", id = "" }
).RouteHandler = new SubDomainMvcRouteHandler();

这将导致所有请求都由指定的自定义 RouteHandler 处理。对于这个特定的处理程序:

    public class SubDomainMvcRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(System.Web.Routing.RequestContext requestContext)
{
return new SubDomainMvcHandler(requestContext);
}
}

然后您可以做任何您想做的事情,在本例中,SubDomainMvcHandler 从 URL 中获取子域并将其作为属性传递给 Controller ​​:

    public class SubDomainMvcHandler : MvcHandler
{
public SubDomainMvcHandler(RequestContext requestContext) : base(requestContext)
{
}

protected override void ProcessRequest(HttpContextBase httpContext)
{
// Identify the subdomain and add it to the route data as the account name
string[] hostNameParts = httpContext.Request.Url.Host.Split('.');

if (hostNameParts.Length == 3 && hostNameParts[0] != "www")
{
RequestContext.RouteData.Values.Add("accountName", hostNameParts[0]);
}

base.ProcessRequest(httpContext);
}
}

关于asp.net-mvc - ASP.NET MVC,操作 URL 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com