15

के साथ एक वैश्विक फ़िल्टर कैसे पंजीकृत करें मैं एक साधारण एमवीसी आवेदन में एक फ़िल्टर पंजीकृत करने की कोशिश कर रहा हूं। मैंने अभी तक परीक्षण के लिए बुनियादी फ़िल्टर के बाहर कुछ भी नहीं लिखा है। मैं वीएस 2015 आरसी का उपयोग कर रहा हूं और मैंने नई परियोजना -> एएसपीनेट वेब एप्लिकेशन -> वेब एपीआई पर जाकर प्रारंभिक एप्लिकेशन बनाया है। मेरी समस्या यह है कि मुझे विश्व स्तर पर फ़िल्टर को पंजीकृत करने का कोई तरीका नहीं मिल रहा है।एमवीसी 6, एएसपीनेट 5

एमवीसी के पुराने संस्करणों से मैं GlobalFilters.Filters देखता हूं, लेकिन जब मैं इसे नए ढांचे में उपयोग करने का प्रयास करता हूं तो यह मुझे बताता है कि ग्लोबल फ़िल्टर नहीं मिल सकते हैं। पिछले संस्करणों में यह System.Web.MVC में रहता था, लेकिन अब मैं नहीं देखता कि मेरे संदर्भ में, और मुझे इसे कहीं भी नहीं मिल रहा है।

ऐसा लगता है कि यह बहुत आसान होना चाहिए लेकिन अब तक मुझे ऐसा करने का कोई तरीका नहीं मिला है।

यहाँ मेरी project.json आप इसे कैसे MVC में कर सकते हैं की

{ 
    "webroot": "wwwroot", 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.AspNet.Mvc": "6.0.0-beta4", 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000" 
    }, 

    "frameworks": { 
    "dnx451": { 
     "frameworkAssemblies": { 
     } 
    }, 
    "dnxcore50": { } 
    }, 

    "exclude": [ 
    "wwwroot", 
    "node_modules", 
    "bower_components" 
    ], 
    "publishExclude": [ 
    "node_modules", 
    "bower_components", 
    "**.xproj", 
    "**.user", 
    "**.vspscc" 
    ] 
} 
+1

App_Data फ़ोल्डर में आमतौर पर एक फ़िल्टर कॉन्फ़िगर कक्षा होती है; क्या आप इसके बाद क्या कर रहे हैं? –

+0

वैसे फ़िल्टरकॉन्फ ग्लोबल फ़िल्टरर्स में ले जाता है। फ़िल्टर, लेकिन मुझे ग्लोबल फ़िल्टरर्स को – Zipper

+0

से शुरू करने के लिए नहीं मिल रहा है क्या आप project.json फ़ाइल के माध्यम से पूरी तरह से फ़िल्टर पंजीकृत करने का प्रयास कर रहे हैं? साथ ही, आपने यह एमवीसी 5 टैग किया है, लेकिन दिखाए गए अनुसार आपकी कॉन्फ़िगरेशन फ़ाइल क्या इंगित करती है कि आप एमवीसी 6 का उपयोग कर रहे हैं; क्या वो सही है? –

उत्तर

8

उदाहरण है 6

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(); 
    services.ConfigureMvc(options => 
    { 
     options.Filters.Add(new YouGlobalActionFilter()); 
    } 
} 
+6

यह उत्तर अब मान्य नहीं है, ली जोन्स का जवाब देखें (http://stackoverflow.com/a/33768705/11220) – noocyte

31

बीटा 8 के साथ यह अब AddMvc के माध्यम से किया जाता है इस प्रकार है:

services.AddMvc(options => 
{ 
    options.Filters.Add(new YouGlobalActionFilter()); 
}); 
+0

उत्तर के लिए धन्यवाद! क्या केवल कुछ विशिष्ट एमवीसी क्षेत्र के लिए फ़िल्टर लागू करना संभव है? (मैं चाहता हूं कि मेरा बैकएंड अज्ञात उपयोगकर्ताओं के लिए बंद हो, लेकिन आगे नहीं बढ़े।) धन्यवाद! –

संबंधित मुद्दे