una tabla paginacion net mvc mostrar filtros filtro datos busqueda asp asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

tabla - pasar el parámetro del método de acción a ActionFilterAttribute en asp.net mvc



mostrar datos de una tabla en mvc (2)

Sobre la base de la respuesta de @Pankaj y los comentarios de @csetzkorn:

Usted pasa el nombre del parámetro como una cadena y luego verifica el filterContext

public class NewAuthoriseAttribute : ActionFilterAttribute { public string IdParamName { get; set; } public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.ActionParameters.ContainsKey(IdParamName)) { var id = filterContext.ActionParameters[IdParamName] as Int32?; } } } [NewAuthorizeAttribute(IdParamName = "fooId")] public ActionResult Index(int fooId) { ... }

Sé que puedo usar el filterContext para llegar a él. Sin embargo, esto no es muy flexible si el parámetro del método de acción tiene un nombre diferente. Esto debería funcionar:

[HttpGet] [NewAuthoriseAttribute(SomeId = id)] public ActionResult Index(int id) { ... public class NewActionFilterAttribute : ActionFilterAttribute { public int SomeId { get; set; } ...

pero no lo hace (ni siquiera compila). ¿Algunas ideas?


Editar

Estoy asumiendo que usted está buscando hacer el nombre de Alias ​​de Parámetro. Esto le brinda la flexibilidad de tener múltiples alias de su nombre de parámetro.

ActionParameterAlias.ParameterAlias ​​Overloads

Si es así, puedes dar un alias como abajo.

[ParameterAlias("Original_Parameter_Name", "New_Parameter_Name")] [ParameterAlias("Original_Parameter_Name", "New_Parameter_Name1")] [ParameterAlias("Original_Parameter_Name", "New_Parameter_Name2")] [ParameterAlias("Original_Parameter_Name", "New_Parameter_Name3")]

public ActionResult ActionMethod (Model ParameterValue) {return View (ParameterValue); }

Mensaje original

Prueba este.

Atributo

public class NewAuthoriseAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.ActionParameters.ContainsKey("id")) { var id = filterContext.ActionParameters["id"] as Int32?; } } }

Método de acción

Asegúrese de establecer el tipo de parámetro anulable para evitar el bloqueo de tiempo de ejecución.

[NewAuthoriseAttribute] public ActionResult Index(Int32? id) { }