(X)HTML 新闻.rss -> RSS news.atom -> ATOM 是否可以通过一条路线来做到这一点(在我计划-6ren">
gpt4 book ai didi

asp.net-mvc - 带有 "File Extensions"的 ASP.NET MVC 路由

转载 作者:行者123 更新时间:2023-12-04 02:06:38 25 4
gpt4 key购买 nike

我想为新闻列表创建一个 MVC 路由,该路由可以以多种格式提供。

  • 新闻 -> (X)HTML
  • 新闻.rss -> RSS
  • news.atom -> ATOM

  • 是否可以通过一条路线来做到这一点(在我计划的设计中的几个地方出现了更一般的“可选扩展”情况)?或者我需要做两条这样的路线:
    routes.MapRoute("News-ImplicitFormat",
    "news",
    new { controller = "News", action = "Browse", format = "" });

    routes.MapRoute("News-ExplicitFormat",
    "news.{format}"
    new { controller = "News", action = "Browse" });

    让路由系统支持以下内容似乎很有用:
    routes.MapRoute("News",
    "news(.{format})?",
    new { controller = "News", action = "Browse" });

    最佳答案

    我做了一个方法来支持添加这样的对,如下所示:

    public static void MapRouteWithOptionalFormat(this RouteCollection routes,
    string name,
    string url,
    object defaults)
    {
    Route implicitRoute = routes.MapRoute(name + "-ImplicitFormat",
    url,
    defaults);
    implicitRoute.Defaults.Add("format", string.Empty);

    Route explicitRoute = routes.MapRoute(name + "-ExplicitFormat",
    url + ".{format}",
    defaults);
    }

    关于asp.net-mvc - 带有 "File Extensions"的 ASP.NET MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/255876/

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