Данный htmlHelper + имя действия, как выяснить название контроллера?

Как делает HtmlHelper. ActionLink (htmlhelper, представьте linktext в виде строки, представьте действие в виде строки), выясняет правильный маршрут?

Если у меня есть это =>

HtmlHelper.ActionLink("Edit","Edit")

Mvc автоматически узнает правильный маршрут.

т.е. - если контроллер был продуктом, он представит привязку с href product/edit.

Таким образом - как выяснить, контроллер называет, когда я получил htmlHelper + комбинация имени действия?

7
задан Arnis Lapsa 2 January 2010 в 01:13
поделиться

1 ответ

Если ваш HtmlHelper выглядит как:

public static string MyHelper(this HtmlHelper htmlHelper,
                             ... some more parameters ...) {

    return ... some stuff ...
}

Тогда от вашего помощника обратитесь:

RouteData routeData = htmlHelper.ViewContext.RouteData;
string controller = routeData.GetRequiredString("controller");

Объект RouteData содержит все значения, которые были обработаны ASP.NET Routing для текущего запроса. Сюда будут включены имена параметров и значения из маршрута, такие как "{controller}/{action}/{id}". Многие из встроенных помощников ASP.NET MVC получают оттуда "окружающие" данные, чтобы разработчику не приходилось вводить их для каждого используемого помощника.

Полный исходный код можно также скачать в ASP.NET MVC отсюда:

  1. ASP.NET MVC 1.0 RTM исходный код
  2. ASP.NET MVC 2 Release Candidate исходный код
15
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

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