如何为 MVC 核心项目创建真正的默认路由?
How do I make a true default route for a MVC CORE project?
我的 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");
});
}
}
添加专门针对 /
案例的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
"home",
"/",
new{controller="Home", Action="Index"});
routes.MapRoute(
"default",
"mvc/{controller=Home}/{action=Index}/{id?}");
});
我的 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");
});
}
}
添加专门针对 /
案例的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
"home",
"/",
new{controller="Home", Action="Index"});
routes.MapRoute(
"default",
"mvc/{controller=Home}/{action=Index}/{id?}");
});