这是我之前提出的问题的后续行动。
MVC - trouble linking to another Controller/Action
正如你所看到的,我最终确实从另一个控制器获取我的视图以显示在新标签中,因此它正常工作。直到我安装SignalR。使用本教程作为指南的简单版本..
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc
在按照创建项目的步骤后,教程工作正常。我要做的唯一工作就是将jquery signalr javascript文件的版本更改为最新版本(这是我没有的版本,因为该教程是在较早的VS 2012中编写的)。
在任何情况下,在对我的网站执行相同的步骤后,当我点击/ SignalR / SRStart(新标签)的链接时,我现在收到错误..
协议错误:未知传输
玩弄我发现这只发生在startup.cs文件中调用app.MapSignalR()之后。无法理解为什么,因为我所遵循的教程工作正常,除非它与跨越到该链接上的另一个控制器有关。在SRStart视图中,我放置了所有信号器连接代码和回调函数,但我认为它没有达到,因为页面甚至没有加载。
这是我的代码..
startup.cs
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.MapSignalR();
}
}
毂
public class SRHub : Hub
{
public void Send(string message)
{
// Call the addNewMessageToPage method to update clients.
var conn = GlobalHost.ConnectionManager.GetHubContext<SRHub>();
conn.Clients.All.addNewMessageToPage(message);
//Clients.All.addNewMessageToPage(message);
}
}
SRStart.cshtml中的javascript
$(function () {
// Reference the auto-generated proxy for the hub.
var conn = $.connection.sRHub;
// Create a function that the hub can call back to display messages.
conn.client.addNewMessageToPage = function (message) {
if (!message.contains('[EOF]')) {
populateStreamDialog(message);
}
};
$.connection.hub.start()
.done(function () {
});
});
任何帮助将不胜感激..
答案 0 :(得分:1)
我能够复制错误。问题是/SignalR
是SignalR本身使用的路由。
通过使用名为SignalRController
的MVC控制器,SignalR和MVC之间现在存在冲突,从而导致错误。
只需将MVC控制器SignalRController
(以及包含其视图的文件夹)重命名为其他内容......