Ответ 1
Когда вы используете ActionParameters
на OnActionExecuting
, вы можете изменить значения, отправляемые на стороне клиента для обработки вашего действия, для образца:
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.ActionParameters["customerId"] = 852;
base.OnActionExecuting(filterContext);
}
}
Если у вас есть действие с использованием параметра customerId, вы получите значение, установленное в фильтре действия, так как ваше действие имеет фильтр, для образца:
Когда вы запрашиваете какой-либо URL-адрес: /customer/detail/123
, вы получите значение 852
на CustomerId:
[MyAction]
public ActionResult Detail(int customerId)
{
// customerId is 852
return View();
}
RouteData
примерно соответствует значениям на URL-адресе, обрабатывая таблицы маршрутов.