13

निम्नलिखित कोड को देखते हुए?ActionExecutingContext ActionParameters बनाम RouteData

हमें रूट डेटा पर कार्रवाई पैरामीटर का उपयोग कब करना चाहिए? अंतर क्या है? यदि आप एक ग्राहक आईडी पैरामीटर का उपयोग करने के लिए एक कार्रवाई है, तो

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

     base.OnActionExecuting(filterContext); 
    } 
} 

, आप:

+4

@DarinDimitrov कहां है जब आपको उसकी आवश्यकता होती है। :) – RPM1984

उत्तर

14

जब आप OnActionExecuting पर ActionParameters उपयोग करते हैं, आप मूल्यों उस क्षेत्र क्लाइंट साइड द्वारा भेजने अपनी कार्रवाई कार्रवाई करने के लिए, बदल सकते हैं नमूने के लिए कार्रवाई फिल्टर पर setted मूल्य मिल जाएगा, के बाद से अपनी कार्रवाई फिल्टर, नमूने के लिए है:

आप इस तरह किसी भी यूआरएल का अनुरोध करते हैं: /customer/detail/123, आप 852 मूल्य ग्राहक आईडी पर मिल जाएगा:

[MyAction] 
public ActionResult Detail(int customerId) 
{ 
    // customerId is 852 

    return View(); 
} 

RouteData बस रूट टेबल द्वारा प्रसंस्करण, यूआरएल पर मूल्यों के बारे में है।