खोज…


कस्टम क्रिया फ़िल्टर

हम विभिन्न कारणों से कस्टम एक्शन फिल्टर लिखते हैं। हमारे पास लॉगिंग के लिए या किसी भी कार्रवाई के निष्पादन से पहले डेटाबेस में डेटा को बचाने के लिए एक कस्टम एक्शन फ़िल्टर हो सकता है। हमारे पास डेटाबेस से डेटा प्राप्त करने और इसे एप्लिकेशन के वैश्विक मूल्यों के रूप में स्थापित करने के लिए एक हो सकता है।

एक कस्टम एक्शन फ़िल्टर बनाने के लिए, हमें निम्नलिखित कार्य करने होंगे:

  1. एक वर्ग बनाएँ
  2. यह ActionFilterAttribute वर्ग से प्राप्त करें

निम्न विधियों में से कम से कम एक ओवरराइड करें:

OnActionExecuting - नियंत्रक क्रिया निष्पादित होने से पहले इस विधि को कहा जाता है।

OnActionExecuted - नियंत्रक क्रिया निष्पादित होने के बाद इस विधि को कहा जाता है।

OnResultExecuting - इस विधि को एक नियंत्रक क्रिया परिणाम निष्पादित होने से पहले कहा जाता है।

OnResultExecuted - इस विधि को नियंत्रक क्रिया परिणाम निष्पादित होने के बाद कहा जाता है।

फ़िल्टर को नीचे दी गई सूची में दिखाया गया है:

    using System;
    
    using System.Diagnostics;
    
    using System.Web.Mvc;
    
    
    
    namespace WebApplication1
    {
    
        public class MyFirstCustomFilter : ActionFilterAttribute
        {
            public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                //You may fetch data from database here 
                filterContext.Controller.ViewBag.GreetMesssage = "Hello Foo";
                base.OnResultExecuting(filterContext);
            }
    
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                var controllerName = filterContext.RouteData.Values["controller"];
                var actionName = filterContext.RouteData.Values["action"];
                var message = String.Format("{0} controller:{1} action:{2}", "onactionexecuting", controllerName, actionName);
                Debug.WriteLine(message, "Action Filter Log");
                base.OnActionExecuting(filterContext);
            }
        }
    }


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow