vistas tutorial que parciales net mvc entre ejemplos diferencias asp c# asp.net asp.net-mvc-3

c# - tutorial - Obtener el controlador y la acción actuales desde una vista parcial



web forms c# ejemplos (2)

Después de su pregunta actualizada y mostrar su código, es mucho más claro: no está incluyendo una vista parcial. Estás llamando a una acción infantil. Hay una gran diferencia entre Html.Partial y Html.Action . Entonces, si desea obtener el contexto principal dentro de esta acción secundaria, podría hacer esto:

public ActionResult Menu() { var rd = ControllerContext.ParentActionViewContext.RouteData; var currentAction = rd.GetRequiredString("action"); var currentController = rd.GetRequiredString("controller"); ... return View(); }

Estoy usando lo siguiente para obtener el controlador y la acción actuales en asp.net MVC3:

var currentAction = routeData.GetRequiredString("action"); var currentController = routeData.GetRequiredString("controller");

Esto funciona perfectamente. Sin embargo, si lo llamo desde una vista parcial que se llama desde mi diseño, se devuelve "Diseño" como el controlador actual. Por supuesto, este es el comportamiento correcto, pero ¿hay alguna forma de acceder al nombre del controlador principal?

Editar para mayor aclaración:

Estoy llamando a mi controlador de menú y vista parcial desde _Layout.cshtml:

@Html.Action("Menu", "Layout")

Luego, desde la vista parcial de ese menú, estoy llamando al código que devuelve la acción y el controlador actuales.


Me encontré en esta página buscando una manera de acceder al nombre de los controladores principales después de una llamada usando Parcial

@Html.Partial("Paging")

Esto se puede hacer en la vista parcial como

@{ var controller = ViewContext.RouteData.GetRequiredString("controller"); var action = ViewContext.RouteData.GetRequiredString("action"); }