【问题标题】:How do I make a true default route for a MVC CORE project?如何为 MVC CORE 项目创建真正的默认路由?
【发布时间】:2017-03-28 19:55:10
【问题描述】:

我的 HomeController 有以下设置。我希望我所有的 MVC 控制器都从 /mvc/[controler]/[action] 和 /api/ 上的 WebApi 响应

但是当有人转到无路径版本的主机时,我希望它转到/mvc/home/index,我的设置似乎没有这样做!

我希望http://hostname/ 访问 http:/hostname/Home/Index

    [Route("mvc/[controller]")]
[ApiExplorerSettings(IgnoreApi = true)]
public class HomeController : Controller
{
    [Route("Index")] 
    public IActionResult Index()
    {
        return View();
    }

    [Route("Error")]
    public IActionResult Error()
    {
        return View();
    }
}

我的startup.cs:

      public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }
        app.UseStaticFiles();
        app.UseMiddleware(typeof(ErrorHandlingMiddleware));
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                "default",
                "mvc/{controller=Home}/{action=Index}/{id?}");
        });

        app.UseSwagger();

        app.UseSwaggerUI(c =>
        {
            var swaggerendpoint = Configuration["SwaggerEndpoint"];
            c.SwaggerEndpoint(swaggerendpoint, "Public Cloud Interface");
        });
    }
}

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc asp.net-mvc-routing


    【解决方案1】:

    专门为/ 案例添加路由:

    app.UseMvc(routes =>
        {
            routes.MapRoute(
                "home",
                "/", 
                new{controller="Home", Action="Index"});
    
            routes.MapRoute(
                "default",
                "mvc/{controller=Home}/{action=Index}/{id?}");
        });
    

    【讨论】:

    • 这是“传统”方法——它在 MVC 2 3 & 4 的 MVC 项目模板中
    猜你喜欢
    • 2017-07-08
    • 1970-01-01
    • 2015-03-06
    • 2011-06-19
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    相关资源
    最近更新 更多