【发布时间】:2016-02-10 21:03:25
【问题描述】:
使用 ASP.NET Core 1.0 的 MVC 6 的 RC1,您可以在调用 app.UseMvc 时从 Startup.Configure 函数中映射路由。我已经映射了一个“spa-fallback”路由,以确保 HomeController 和 Index 视图是默认值,如下所示:
public void Configure(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
// ... omitted for brevity
app.UseExceptionHandler("/Home/Error");
app.UseStatusCodePagesWithRedirects("/Home/Error/{0}");
app.UseMvc(routes =>
{
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute("spa-fallback", "{*anything}", new { controller = "Home", action = "Index" });
routes.MapWebApiRoute("defaultApi", "api/{controller}/{id?}");
});
}
我希望回退,以便我的 Angular2 应用的路由不会产生 404, Not Found 的 HTTP 状态代码。但是,当用户无意中尝试导航到不存在的页面视图时,我还需要正确处理。你可能会注意到我也调用了app.UseStatusCodePagesWithRedirects("/Home/Error/{0}");。
使用状态代码和“spa-fallback”路由重定向到我的错误页面的调用似乎相互排斥——这意味着我似乎只能拥有一个或另一个(但遗憾的是不能同时拥有)。有谁知道我怎样才能做到两全其美?
【问题讨论】:
-
目前新包可以在“Microsoft.AspNetCore.SpaServices”中找到:“1.0.0-beta-000005”。
-
@SamanAhmadi,我看到了...谢谢
-
@DavidPine 您会考虑更改接受的答案吗?试图建立我的街头信誉;-)
标签: c# asp.net-mvc-routing asp.net-core-mvc angular2-routing