2009-07-01 22 views
7

मुझे एक कंट्रोलर (और बाद में एक रूट) नाम के साथ एक कंटेंट कंट्रोलर नामक कोशिश करने के साथ एक मुश्किल समस्या है (मेरे साथ भालू एमवीसी के लिए नया है) ।एएसपी.नेट एमवीसी रूटिंग "प्रॉपर्टी कंट्रोलर" नामक नियंत्रक के साथ

मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि एक निर्देशिका है (जिसे मैं वास्तव में हटा नहीं सकता) जिसे मेरे समाधान में "गुण" कहा जाता है। क्या इस के चारों ओर एक रास्ता है?

मार्ग सेटअप सिर्फ एक सरल मार्ग है:

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Properties", action = "List", id = "" } // Parameter defaults 
); 

और त्रुटि मैं IIS7 में मिलता है जब "http://localhost/aptment2/properties/" का अनुरोध है:

alt text

निश्चित रूप से वहाँ एक रास्ता यह दौर है कि मैं बस नहीं मिला? चीयर्स।

+0

क्या आप सीधे उस दृश्य को ब्राउज़ करने का प्रयास कर रहे हैं या आप डिफ़ॉल्ट.एएसपीएक्स पेज से पहले जा रहे हैं (जैसे कि एफ 5 या Ctrl + F5 के साथ)? बस उत्सुक है कि मार्ग पंजीकरण बाईपास हो रहा है जो होता है f आपके पास उस दृश्य को डिफ़ॉल्ट.aspx के बजाय प्रारंभ पृष्ठ के रूप में सेट किया गया है। – nkirkes

+0

बस इसे डिबग करने का प्रयास करने में 2 घंटे जला दिया गया है, अगली बार – mxmissile

+0

को अपने एसओ को याद रखना होगा यूआरएल 'गुण/इंडेक्स' काम और भी गड़बड़ है। – mxmissile

उत्तर

4

किसी और एक ही समस्या हो रही है के बाद से, मेरा अनुमान है कि यह है कि आप एक आरक्षित कीवर्ड में यहाँ चला रहे हैं (मैं कल्पना ClassControllers रूप में अच्छी तरह से बाहर कर रहे हैं)।

यह पहली बार ऐसा नहीं हुआ है - पर्यावरण के आंतरिक में गहराई से खोदना, you can't route to Windows' reserved keywords either

2

एक त्वरित परीक्षण चल रहा है, मुझे वही व्यवहार मिलता है। क्या यह गुणों के अलावा कुछ और उपयोग करने का व्यवहार्य विकल्प है?

+0

एमवीसी के सभी विचारों के बाद, यदि आप पूर्ण नियंत्रण रखते हैं और आपकी यूआरएल नामकरण योजना जितनी संभव हो उतनी साफ होनी चाहिए, तो मैं संभव नहीं हूं! –

+0

ठीक है, तरह। राउटिंग के पीछे यह विचार है, जरूरी नहीं कि केवल एमवीसी, लेकिन एमवीसी कुछ सम्मेलनों पर निर्भर करता है और इसमें आरक्षित शब्दों या अन्य संसाधनों के नामों का उपयोग नहीं करना शामिल है। मैं सुझाव देता हूं कि या तो उस मार्ग परिभाषा को आगे लॉक करने की तलाश में (मैं एक सुझाव के साथ एक संपादन जोड़ दूंगा) या अपने नियंत्रक के लिए एक अलग नाम के साथ आ रहा हूं। – nkirkes

+0

मैंने थोड़ा आगे मार्ग को लॉक करने का प्रयास किया और एक ही परिणाम प्राप्त किया। आप इस पर एसओएल हो सकते हैं लेकिन मैं यह देखने के लिए उत्सुक हूं कि इसके आसपास कोई रास्ता है या नहीं। – nkirkes

0

मुझे नहीं पता कि यह आपके लिए एक विकल्प है, लेकिन आप मौजूदा फ़ाइलों में रूटिंग अक्षम करने का प्रयास कर सकते हैं।

routes.RouteExistingFiles = false; 
4

मेरे पास आईआईएस एक्सप्रेस का उपयोग करने के लिए कॉन्फ़िगर किए गए एक एमवीसी 3 एप्लिकेशन पर PropertiesController सेटअप है। मुझे आपके द्वारा की जाने वाली सटीक त्रुटि नहीं मिलती है, लेकिन यह समान है (404.20 कोई डिफ़ॉल्ट दस्तावेज़ नहीं) और मुझे यकीन है कि यह उसी कारण से है।

यह हमारे उत्पादन वातावरण में कोई समस्या नहीं पैदा करता है क्योंकि हम ऐप का एक संकलित निर्माण प्रकाशित करते हैं और उसके बाद इसमें कोई गुण फ़ोल्डर नहीं होता है।

समस्या के समाधान प्राप्त करने के लिए है, जबकि विकासशील स्थानीय रूप से मुझे मिल गया है सब मेरी स्थैतिक सामग्री एक ही निर्देशिका में (लिपियों/सीएसएस/आदि ...) और मैं इसे अनदेखा करते हुए भी RouteExistingFiles को चालू करने से।

routes.IgnoreRoute("static/{*wildcard}"); 
    routes.RouteExistingFiles = true; 

यह मेरी समस्या को ठीक करता है और अब मैं example.com/properties/ त्रुटि मुक्त ब्राउज़ कर सकता हूं।

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