ASP.NetMVC自动为路由生成Slug
创始人
2024-11-12 05:30:05
0

为了自动将路由转换为Slug,可以创建一个自定义路由约定。这个约定可以在路由注册表中注册并处理URL片段,从而生成Slug URL。

以下是一个示例自定义路由约定代码:

public class SlugRoute : RouteBase
{
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        var path = httpContext.Request.Path;
        var parts = path.Split('/');
        var controller = parts[1];
        var action = parts[2];

        var id = "";
        if (parts.Length > 3 && !string.IsNullOrEmpty(parts[3]))
        {
            id = parts[3];
        }

        var slug = "";
        if (parts.Length > 4 && !string.IsNullOrEmpty(parts[4]))
        {
            slug = parts[4];
        }

        var data = new RouteData(this, new MvcRouteHandler());
        data.Values.Add("controller", controller);
        data.Values.Add("action", action);
        data.Values.Add("id", id);
        data.Values.Add("slug", slug);

        return data;
    }

    public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
    {
        throw new NotImplementedException();
    }
}

在应用程序启动时,使用以下代码注册自定义路由约定:

RouteTable.Routes.Add(new SlugRoute());

此时,可以在控制器中使用 string 类型的标准参数来获取Slug值:

public ActionResult Index(int id, string slug)
{
    // 使用 slug 来从数据库中获取内容
    return View();
}

在视图中,创建Slug URL时使用以下代码:

@Html.ActionLink("Link text", "Action", "Controller", new { id = 1, slug = "slug-value" }, null)

这将生成以下URL:

/Controller/Action/1/slug-value

相关内容

热门资讯

九分钟辅助!闲玩暗宝插件,原来... 九分钟辅助!闲玩暗宝插件,原来是真的有辅助app(证实有挂)1、下载好闲玩暗宝插件脚本下载之后点击打...
第三分钟辅助!情怀国粹麻将神器... 第三分钟辅助!情怀国粹麻将神器,其实是真的有辅助神器(有挂秘籍)1、许多玩家不知道情怀国粹麻将神器辅...
9分钟辅助!728游戏怎么控制... 9分钟辅助!728游戏怎么控制的,原来是有辅助挂(存在有挂)1、728游戏怎么控制的模拟器是什么优化...
第8分钟辅助!指尖四川辅助破解... 第8分钟辅助!指尖四川辅助破解版苹果,好像真的有辅助教程(存在有挂)1、金币登录送、破产送、升级送、...
4分钟辅助!榕城510k作弊脚... 4分钟辅助!榕城510k作弊脚本,一贯真的是有辅助器(有挂透明挂)1、榕城510k作弊脚本破解器简单...
第七分钟辅助!中指小程序破解头... 第七分钟辅助!中指小程序破解头像,真是是真的有辅助app(有挂攻略)1、在中指小程序破解头像插件功能...
八分钟辅助!皇豪互众智能辅助器... 八分钟辅助!皇豪互众智能辅助器破解,切实有辅助app(详细教程)皇豪互众智能辅助器破解能透视中分为三...
第4分钟辅助!拱趴游戏插件,果... 第4分钟辅助!拱趴游戏插件,果然存在有辅助教程(有挂实锤)1、玩家可以在拱趴游戏插件线上大神俱乐部对...
1分钟辅助!如何设置钱塘十三水... 您好,如何设置钱塘十三水辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
第2分钟辅助!微信小程序破解内... 第2分钟辅助!微信小程序破解内购,一直真的是有辅助工具(有挂分析)1、微信小程序破解内购免费脚本咨询...