使用Asp.net 4.5进行Angular2路由

时间:2016-12-05 16:49:34

标签: asp.net asp.net-mvc angular angular2-routing

我需要帮助。 我开始用Asp.net核心开发angular2,一切都很完美。 为了将所有404请求重定向到index.html,我在Startup类中使用此代码。

app.Use(async (context, next) =>
        {
            await next();

            if (context.Response.StatusCode == 404
                && !Path.HasExtension(context.Request.Path.Value))
            {
                context.Request.Path = "/index.html";
                await next();
            }
        });

但是,我需要返回到asp.net 4.5,现在我遇到了一个很大的路由问题。我尝试在Owin Startup类中使用类似的代码,但这并没有解决问题。

如何将所有请求移至index.html? 一个例子:我有重定向到/ logout的链接,但现在使用此代码,app.module看不到/注销,我被重定向到应用程序的主页。

在教程中如何使用angular2与asp 4.5(https://angular.io/docs/ts/latest/cookbook/visual-studio-2015.html)  在最后一段中说:

  

如果此应用程序使用Angular路由器,则可以进行浏览器刷新   返回404 - 找不到页面。看看地址栏。可以   包含导航网址(“深层链接”)...除/或之外的任何路径   /index.html?

     

您必须将服务器配置为返回index.html   要求。在此之前,请删除导航路径并再次刷新。

怎么做? 谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将所有内容重定向到index.html页面以解决此问题,这是我在其中一个项目中使用的配置代码:

system.websever

在web.config

maximum(Set, Element):- ((set(Set,Element), current_max(Max), (Max > Element, fail); (Element > Max, retract(current_max(Max)), assert(current_max(Element)), fail)) ; true ). maximum(_, Max):- current_max(Max).) 部分下添加此内容