Как Вы получаете доступ к существующей системе. Сеть. Маршрутизация. RequestContext из пользовательского вспомогательного метода в ASP.NET MVC?

21
задан Alexander 16 May 2018 в 10:14
поделиться

5 ответов

Заметил, что это все еще без ответа. Начиная с MVC 1.0, вы можете:

public static string NewHelperMethod(this HtmlHelper helper)
{
    UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext);
19
ответ дан 29 November 2019 в 06:23
поделиться

Как упомянуто выше, просто расширьте HtmlHelper, и контекст представлен таким образом. Например:

    public static string ExtensionMethodName(this HtmlHelper html,object o)
    {
        html.ViewContext.HttpContext.Request.Uri ... etc    
    }
2
ответ дан 29 November 2019 в 06:23
поделиться

Не создавайте новый. Просто расширьте существующий UrlHelper, точно так же, как Вы расширили бы HtmlHelper:

public static string IdLink(this UrlHelper helper, Guid id)
    { //...

, Если необходимо использовать и HtmlHelper и UrlHelper, передайте одного из них как постоянный клиент (не - "это") аргумент.

1
ответ дан 29 November 2019 в 06:23
поделиться

Возможно, вы нашли ответ в другом месте, но здесь:

В действии контроллера вы можете перейти к текущему контексту запроса следующим образом:

public ActionResult SomeAction(){
  var helper = new UrlHelper(this.ControllerContext.RequestContext);
  ...
}
3
ответ дан 29 November 2019 в 06:23
поделиться

Если текущий IHttpHandler - MvcHandler, вы можете использовать

((MvcHandler)HttpContext.Current.Handler).RequestContext
46
ответ дан 29 November 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: