asp.net-mvc-4 – / signalr / hubs未加载到asp.net mvc4:抛出4
这是我做的
>我使用nuget获取我的MVC4项目的SignalR. 问题是/ signalr / hubs没有找到(throws 404). 我的项目有区域,结构如图所示: > MVCProject >区域 > SubFolder >控制器 > SignalRTestController.cs >模型 > Index.cshtml >控制器 signalR的所有脚本都在Scripts文件夹中,我的SignalRTestController.cs如下所示: namespace SignalRTest.Controllers { public class SignalRTestController : Controller { public ActionResult Index() { // Do some work here // Broadcasting over a Hub from outside of a Hub var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); context.Clients.say("Hello SignalR!"); return View(); } } [HubName("MyHub")] public class MyHub : Hub { public void Say(string message) { Clients.sendMessage(message); } } } 任何我的Index.cshtml都引用了所有的javascript和/ signalr / hubs,如下所示: script type =“text / javascript”src =“/ signalr / hubs”/> 我认为控制器是好的,但我没有得到/ signalr / hubs.正在投掷404,Chrome控制台中的消息是这样的: 资源解释为脚本,但是使用MIME类型text / html:“http://www.myproject.com/signalr/hubs”进行传输. 脚本作为html返回的原因是服务器返回404未找到. 我不知道有什么问题.我认为这可能是路由问题.我不知道,如果我们需要在/ signalr / hubs的项目中添加任何路由信息,或者我在这里缺少一些东西. FYI:当我创建一个新的空的MVC项目并添加signalR并开始工作时,它的工作完全正常.无需添加路由. 此外,我在某些地方使用默认路由和属性路由.但是控制器SignalRTestController不使用属性路由. 解决方法
你有呼叫RouteTable.Routes.MapHubs()(可能在Global.asax)?如果是这样,尝试摆脱这个问题,看看它是否解决了你的问题. – 皮特11月16日17时22分
我一直在玩它.看来,在当前版本(我得到最新的源,因为我需要一个签名的程序集),你必须调用RouteTable.Routes.MapHubs().但是为了工作,它必须先被调用(或至少在RouteConfig.RegisterRoutes()调用之前).如果之后被调用,MVC会为此控制器寻找并且不起作用.在我通过nuGet使用的早期版本中,删除RouteTable.Routes.MapHubs()来解决问题,但现在似乎是必需的.希望有帮助 – 皮特11月27日20时53分 显然你通过将RouteTable.Routes.MapHubs()更改为:RouteTable.Routes.MapHubs( “?/ signalr”). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在Route Collection中找不到路由名称
- ASP.NET URL重写
- asp.net-mvc – 当前上下文中不存在名称“ViewBag” – 当在
- asp.net-mvc-5 – MVC 5&ASP.NET身份 – 实现混乱
- asp.net-mvc-3 – 为什么Html.Label()不适用于句点?
- .net – IDictionary到SelectList?
- asp.net-mvc-routing – 如何防止Url.RouteUrl(…)从当前请
- asp.net-mvc – EditorForModel – 使用editorfor时复制标签
- asp.net – GridView的RowDataBound函数
- asp.net – 我可以确定HttpModules是按照HttpApplication.M