Получение названия текущего действия с частичной страницы - PullRequest
0 голосов
/ 19 января 2010

Я использую пользовательский HtmlHelper на частичной странице.

Пример:

/Home/Index - Is the Main Page with Index View

/Home/Partial - Is the Partial Action with Partial - A Partial View

В индексном представлении:

Html.RenderAction("Partial");

В частичном виде:

Я использую собственный htmlhelper в том htmlhelper, который мне нужен, чтобы получить URL-адрес, откуда поступил запрос?

Пусть говорят, что это должно быть похоже на "/ Home / Partial"

Как я могу получить это в моем методе htmlhelper

1 Ответ

7 голосов
/ 19 января 2010

Есть несколько способов сделать это в зависимости от того, что вы хотите. Свойство HtmlHelper ViewContext будет содержать практически все, что вам нужно для конкретного запроса: HttpContext, RequestContext, RouteData, TempData, ViewData и т. Д.

Чтобы получить текущий путь запроса, попробуйте helper.ViewContext.HttpContext.Request.Path. Это вернет фактический путь запроса, вероятно, "/" или "/ home / index", если путь был явным в URL.

Я не уверен, почему ты хочешь получить "/ домой / частичное". Поскольку это частичное представление, запрос всегда будет приходить откуда-то еще, например. «/home/index".

Независимо от этого, вы можете проверить RouteData и получить (частичное) действие и контроллер, среди других значений маршрута:

public static string TestHelper(this HtmlHelper helper)
{
    var controller = helper.ViewContext.RouteData.Values["controller"].ToString();
    var action = helper.ViewContext.RouteData.Values["action"].ToString();
    return controller + "/" + action;
}

Если вызвано в вашем представлении индекса (Index.aspx), он вернет " Home / Index ".
Если вызывается в вашем частичном представлении (Partial.aspx), он вернет " Home / Partial ".

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...