我有一个从 Hub 驱动的 Chat 课程。我想知道是否有一种通过 URLHelper 构建 URL 的方法,例如: Url.Action("action","Controller")。
因为我可以从 2 个抽象类(集线器、控制器)派生该类,所以我不知道是否有其他方式来构建完整的 URls 而不是硬代码。
我有一个从 Hub 驱动的 Chat 课程。我想知道是否有一种通过 URLHelper 构建 URL 的方法,例如: Url.Action("action","Controller")。
因为我可以从 2 个抽象类(集线器、控制器)派生该类,所以我不知道是否有其他方式来构建完整的 URls 而不是硬代码。
我目前在我的集线器中使用此代码,我确信有更好的方法可以做到这一点,但这有效。
注意:如果您需要完全限定的 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);
}
}
你可以这样做,我正在使用 T4MVC。
var urlHelper = new UrlHelper(Context.Request.GetHttpContext().Request.RequestContext);
var url = urlHelper.Action(MVC.Directors.EventSchedule.Index(EventId));