vista una pasar net mvc multiples modelos modelo llamar lista form desde datos controlador asp asp.net-mvc-3

asp.net mvc 3 - una - Obtenga el controlador actual a la vista



pasar una lista del controlador a la vista mvc (7)

Tengo una View - _Edit que vive en News M/V/C

Reutilizo el V/M través del CategoryController como:

return PartialView("/Views/News/_Edit.cshtml", model);

¿Cómo desde dentro de View - _Edit puedo alertar el nombre del controlador?

Cuando yo:

alert(''@ViewContext. RouteData.Values["controller"].ToString()'');

El valor es: News Sin embargo, la URL es: /Category/foobar

¿Hay alguna forma de alertar el valor ''Category'' ? Gracias


Cree la clase base para todos los controladores y ponga aquí el atributo de nombre:

public abstract class MyBaseController : Controller { public abstract string Name { get; } }

En vista

@{ var controller = ViewContext.Controller as MyBaseController; if (controller != null) { @controller.Name } }

Ejemplo de controlador

public class SampleController: MyBaseController { public override string Name { get { return "Sample"; } }


He puesto esto en mi vista parcial:

@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()

en el mismo tipo de situación que describe, y muestra el controlador descrito en la URL (Categoría para usted, Producto para mí), en lugar de la ubicación real de la vista parcial.

Entonces usa esta alerta en su lugar:

alert(''@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()'');


Lo hago así, pero tal vez solo sea ASP.NET MVC 4

@ViewContext.RouteData.Values["controller"]


Otra forma de obtener el nombre del controlador actual en la vista

@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue


Puede usar cualquiera de los siguientes códigos para obtener el nombre del controlador

@ HttpContext.Current.Request.RequestContext.RouteData.Values ​​["controller"]. ToString ();

Si está utilizando MVC 3 puede usar @ ViewContext.Controller.ValueProvider.GetValue ("controller"). RawValue


Solo usa:

ViewContext.Controller.GetType().Name

Esto te dará el nombre completo del controlador


Todavía está en el contexto de su CategoryController a pesar de que está cargando un PartialView desde su carpeta Views/News .