Muh*_*eed 5 asp.net asp.net-mvc-routing single-page-application asp.net-core-mvc asp.net-core
我在我的ASP.NET Core SPA中使用命名路由,如下所示:
[HttpGet("", Name = HomeControllerRouteName.GetIndex)]
public IActionResult Index() => this.View();
Run Code Online (Sandbox Code Playgroud)
在我Startup.cs使用该MapSpaFallbackRoute方法回退到单页面应用程序以显示404错误页面.它目前使用控制器和操作名称来确定后备路由,如下所示:
application.UseMvc(
routes =>
{
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
Run Code Online (Sandbox Code Playgroud)
Startup.cs为了保持一致性,我想在命令路由中使用命名路由.怎么能实现这一目标?
示例取自: https: //github.com/aspnet/JavaScriptServices/issues/973
有条件地映射 SPA 后备路线
// API Routes
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// This route will never be mapped when route starts with api
app.MapWhen(x => !x.Request.Path.Value.StartsWith("/api"), builder =>
{
builder.UseMvc(routes =>
{
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |