为了账号安全,请及时绑定邮箱和手机立即绑定

.Net Core MVC 中是否有类似 RouteConfig.cs 的东西?

.Net Core MVC 中是否有类似 RouteConfig.cs 的东西?

C#
幕布斯6054654 2023-05-14 16:43:47
我正在尝试遵循 Adam Freeman 的书“ASP .NET MVC”。在这本书中有一章作者建议将路由放入特殊配置文件App_Start/RouteConfig.cs。它看起来不错,但我正在尝试在 .Net Core 的帮助下实现它。我没有找到路线的特殊位置,所以我将路线放入Startup.cs. 但它看起来非常丑陋。也许有人知道这种情况的优雅解决方案?这是我的代码Startup.cspublic class Startup{    public Startup(IConfiguration configuration)    {        Configuration = configuration;    }    public IConfiguration Configuration { get; }    // This method gets called by the runtime. Use this method to add services to the container.    public void ConfigureServices(IServiceCollection services)    {        // services are here ..    }    public void Configure(IApplicationBuilder app, IHostingEnvironment env)    {        if (env.IsDevelopment())        {            app.UseDeveloperExceptionPage();        }        else        {            //app.UseExceptionHandler("/Home/Error");            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.            app.UseHsts();            app.UseHttpsRedirection();        }        app.UseStaticFiles();        app.UseMvc(routes =>        {            // /            routes.MapRoute(null, "", new            {                controller = "Products",                action = "List",                category = "", page = 1            });            // Page2            routes.MapRoute(null,                "Page{page}",                new                {                    controller = "Products",                    action = "List",                    category = ""                },                new { page = @"\d+" }            );            // Category            routes.MapRoute(null,                "{category}",                new                {                    controller = "Products",                    action = "List",                    page = 1                });PS .Net Core 版本为 2.2
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您可以将它们放在另一个文件中:


public static class Routing

{

    public static void Include(IApplicationBuilder app)

    {

        app.UseMvc(routes =>

        {

            // /

            routes.MapRoute(null, "", new

            {

                controller = "Products",

                action = "List",

                category = "",

                page = 1

            });


            // Page2

            routes.MapRoute(null,

                "Page{page}",

                new

                {

                    controller = "Products",

                    action = "List",

                    category = ""

                },

                new { page = @"\d+" }

            );

        }

        );

    }

}

然后在“启动”类中调用它:


public class Startup

{

    ...

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)

    {

        ...

        app.UseStaticFiles();

        Routing.Include(app);

        ...

    }

}


查看完整回答
反对 回复 2023-05-14
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信