如何在signalR HubClass中使用UrlHelper

Ros*_*rus 5 asp.net-mvc signalr signalr-hub

我有一个来自Hub的Chat类.我想知道他们是否可以通过URLHelper构建URL,如:Url.Action("action","Controller").

因为我可以从2个抽象类(Hub,Controller)派生类我不知道是否其他方式构建完整的URls而不是硬代码.

Kha*_*meh 1

我目前在我的集线器中使用此代码,我确信有更好的方法可以做到这一点,但这可行。

注意:如果您想要一个完全限定的 url,请确保正确设置域 (example.com)。

protected virtual UrlHelper Url
{
    get
    {
        var httpContext = HttpContext.Current;

        if (httpContext == null)
        {
            var request = new HttpRequest("/", "http://example.com", "");
            var response = new HttpResponse(new StringWriter());
            httpContext = new HttpContext(request, response);
        }

        var httpContextBase = new HttpContextWrapper(httpContext);
        var routeData = new RouteData();
        var requestContext = new RequestContext(httpContextBase, routeData);

        return new UrlHelper(requestContext);
    }
}
Run Code Online (Sandbox Code Playgroud)