没有MVC的AspNetCore中的Angular2深度链接

时间:2016-09-11 23:39:57

标签: asp.net-core asp.net-core-mvc asp.net-core-middleware

我正在尝试在Angular 2中实现深层链接。我已经从我的客户端完全删除了MVC,因为我发现它提供给我很少。但是,这样做意味着我不再使用MVC路由器。

有人可以告诉我如何在不使用MVC的情况下使Angular 2深度链接工作吗?

我的示例应用位于https://github.com/tonywr71/Snazzle

1 个答案:

答案 0 :(得分:1)

您需要依赖Angular路由器。通常,您需要从服务器为每个请求提供index.html(或任何defaut)(或者您可以过滤404状态并仅在这种情况下发送index.html)。 Angular将完成剩下的工作。

要捕获404并在asp.net核心应用程序中重定向,可以将其添加到Startup.cs文件中的Configure方法中:

app.Use(async (context, next) =>
{
    await next();
    if(context.Response.StatusCode == 404)
    {
        context.Request.Path = "/";
        await next();
    }
});