【问题标题】:MVC Razor Pages hosting Angular 4 app托管 Angular 4 应用程序的 MVC Razor 页面
【发布时间】:2017-09-21 05:40:14
【问题描述】:

我在 MVC 核心 2 站点中托管一个 Angular 应用程序。我正在使用 Razor 页面。

即本地主机:4000/MyRazorPage

当我导航到托管应用的 Razor 页面时,应用会加载并正常运行,包括处理应用内的路由。

即本地主机:4000/MyRazorPage/home 即 localhost:4000/MyRazorPage/document/1

我遇到的问题是深度链接到应用程序

即localhost:4000/MyRazorPage/document/1 直接在我的浏览器地址栏中输入

我希望在 Startup 中使用它会使其工作,但似乎没有。可能是我使用了错误的操作,因为 Razor Pages 的工作方式与 MVC 有点不同

routes.MapSpaFallbackRoute( name: "MyRazorPage-fallback", defaults: new { area = "", controller = "MyRazorPage", action = "Index" });

帮助赞赏

【问题讨论】:

  • 当我从 startup.cs 中删除 SpaFallbackRoute 时遇到了这个问题
  • 我的启动中仍然有 MapSpaFallbackRoute
  • 你的 MapRoute 控制器 = "home" ?
  • @k11k2 你是说如果主机页面被称为 MyHostPage.cshtml 那么控制器将是主页并且操作将是 MyHostPage?
  • @Peter 你找到解决办法了吗?

标签: c# angular razor asp.net-core-2.0


【解决方案1】:

我最终将此代码添加到我的 startup.cs 文件中

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseStaticFiles();

        app.MapWhen(context => context.Request.Path.Value.StartsWith("/Reader"), builder =>
        {
            builder.UseMvc(routes =>
            {
                routes.MapSpaFallbackRoute("reader-fallback", new { area = "Reader", controller = "Default", action="Index" });
            });
        });


        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "areaRoute",
                template: "{area:exists}/{controller=Default}/{action=Index}/{id?}");

            routes.MapRoute(
                name: "default",
                template: "{controller}/{action=Index}/{id?}");
        });
    }

app.MapWhen 函数表示当路线中包含“Reader”时会更改 spa 后备。您将为每个应用程序执行此操作。

我将每个应用程序托管在网站的自己区域中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多