我是ASP.NET MVC和Signalr的新手。我正在关注this教程,通过信号器学习与ASP> NET的SQL交互。
我已尝试过以下步骤
代码
namespace MvcApplication1
{
public class JobHub
{
public static void Show()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<JobHub>();
context.Clients.All.displayStatus();
}
}
}
现在,当我构建我的解决方案时,我收到此错误
The type 'MvcApplication1.JobHub' cannot be used as type parameter 'T' in the generic type or method 'Microsoft.AspNet.SignalR.Infrastructure.IConnectionManager.GetHubContext<T>()'.
There is no implicit reference conversion from 'MvcApplication1.JobHub' to 'Microsoft.AspNet.SignalR.Hubs.IHub'.
另外,我不确定如何实现第8步,因为当我点击控制器添加“valueController”时,我无法从“ApiController”继承它。
以下是我的应用程序的屏幕截图。
我该如何解决这个问题?
答案 0 :(得分:4)
这是你想到的那部分。似乎JobHub
必须从Hub
继承。包含此引用,然后尝试继承Hub
。
using Microsoft.AspNet.SignalR.Hubs;
public class JobHub : Hub
{
public static void Show()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<JobHub>();
context.Clients.All.displayStatus();
}
}
@Zerotoinfinite - 似乎using System.Web.Http;
对于包含在asp.net mvc 4 中的ApiController
是必需的。因此,您可能想要启动一个mvc 4,或的项目,只需使用一个不会有任何不同的常规控制器。
public class ValuesController : Controller
{
JobInfoRepository objRepo = new JobInfoRepository();
// GET api/values
public JsonResult Get()
{
return Json(objRepo.GetData());
}
}