如何在ASP.NET Core MVC和SignalR项目中配置复杂长尾路由?

2026-03-30 12:161阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计233个文字,预计阅读时间需要1分钟。

如何在ASP.NET Core MVC和SignalR项目中配置复杂长尾路由?

我正在尝试构建一个Web应用程序,使用ASP.NET Core 2.1.0-preview1和包含Angular 4客户端的ASP.NET Core SignalR 1.0.0-alpha1。目前,我已成功实现客户端内的SignalR WebSocket连接。

如何在ASP.NET Core MVC和SignalR项目中配置复杂长尾路由?

我正在尝试使用ASP.NET Core 2.1.0-preview1和带有Angular4客户端的ASP.NET Core SignalR 1.0.0-alpha1构建一个Web应用程序.到目前为止,我已经能够搞砸了,实际上可以在客户端内打开SignalR Web套接字连接.然而,这是有代价的,这里是我的Startup.cs的摘录:

app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); /*routes.MapSpaFallbackRoute( name: "spa-fallback", defaults: new { controller = "Home", action = "Index" });*/ }); app.UseWebSockets(); app.UseSignalR(routes => { routes.MapHub<Feed>("feed"); });

正如您所看到的,我不得不禁用“spa-fallback”路由,如果我不这样做,SignalR将接收纯HTML而不是JSON.当然,缺点是我必须立即输入确切的URL(例如localhost:12345 / home / index),这很糟糕.

所以我的问题是,如何让MVC路由和SignalR路由并排?

您需要在UseMvc之前放置UseSignalR,否则将在UseSignalR添加的路由之前注册后备路由.

本文共计233个文字,预计阅读时间需要1分钟。

如何在ASP.NET Core MVC和SignalR项目中配置复杂长尾路由?

我正在尝试构建一个Web应用程序,使用ASP.NET Core 2.1.0-preview1和包含Angular 4客户端的ASP.NET Core SignalR 1.0.0-alpha1。目前,我已成功实现客户端内的SignalR WebSocket连接。

如何在ASP.NET Core MVC和SignalR项目中配置复杂长尾路由?

我正在尝试使用ASP.NET Core 2.1.0-preview1和带有Angular4客户端的ASP.NET Core SignalR 1.0.0-alpha1构建一个Web应用程序.到目前为止,我已经能够搞砸了,实际上可以在客户端内打开SignalR Web套接字连接.然而,这是有代价的,这里是我的Startup.cs的摘录:

app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); /*routes.MapSpaFallbackRoute( name: "spa-fallback", defaults: new { controller = "Home", action = "Index" });*/ }); app.UseWebSockets(); app.UseSignalR(routes => { routes.MapHub<Feed>("feed"); });

正如您所看到的,我不得不禁用“spa-fallback”路由,如果我不这样做,SignalR将接收纯HTML而不是JSON.当然,缺点是我必须立即输入确切的URL(例如localhost:12345 / home / index),这很糟糕.

所以我的问题是,如何让MVC路由和SignalR路由并排?

您需要在UseMvc之前放置UseSignalR,否则将在UseSignalR添加的路由之前注册后备路由.