13

対ActionParametersは、次のコードを考えると?ActionExecutingContext RouteData

いつルートデータよりもアクションパラメータを使用する必要がありますか?違いはなんですか?

+4

@DarinDimitrovが必要な場合はどこですか? :) – RPM1984

答えて

14

あなたはOnActionExecutingActionParametersを使用する場合、あなたはエリアはサンプルのため、あなたのアクションを処理するために、クライアント側で送信した値に変更することができます:あなたが得意先コードパラメータを使用してアクションを持っている場合は、

public class MyActionFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     filterContext.ActionParameters["customerId"] = 852; 

     base.OnActionExecuting(filterContext); 
    } 
} 

をあなたの行動は、サンプル用のフィルタを持っているので、アクションフィルタにsetted値を取得します:あなたはこのような任意のURLを要求すると

/customer/detail/123を、あなたはCustomerIdの上 852値を取得します
[MyAction] 
public ActionResult Detail(int customerId) 
{ 
    // customerId is 852 

    return View(); 
} 

RouteDataは、値がURLにあり、ルートテーブルで処理しています。

関連する問題