मैंने ASP.Net MVC routing legacy URLs passing querystring Ids to controller actions और विरासत यूआरएल रूटिंग के लिए कई अन्य समान पदों को देखा है, लेकिन मुझे त्रुटि से पहले नहीं मिल सकता है "रूटडेटा में एक गैर- खाली स्ट्रिंग मान। " लाइन पर इसे देखकर मुझे मेरी समस्या को हल करने के लिए कोई संकेत नहीं दिया।क्वेरी स्ट्रिंग पैरामीटर के साथ विरासत यूआरएल पुनः लिखना
मैं विरासत मार्ग वर्ग ऊपर के लिंक में वर्णित को क्रियान्वित किया है, और यह है कि मैं क्या रूटिंग तालिका में परिभाषित किया है:
routes.Add(
"Legacy",
new LegacyRoute("fooref.aspx",
"FooRef",
new LegacyRouteHandler())
);
routes.MapRoute(
"FooRef",
"{controller}/{action}",
new
{
controller = "Home",
action = "Index",
foo_id = UrlParameter.Optional,
bar_id = UrlParameter.Optional
}
);
जब मैं फिल Haack के मार्ग डिबगर उपयोग करें, यह इंगित करता है कि fooref .aspx का एक मैच है, लेकिन जब मैं मार्ग डीबगर बंद करता हूं, तो मुझे उपरोक्त त्रुटि मिलती है। अगर मैं कथन आदेश को उलट देता हूं, तो मुझे /ctprefer.aspx के लिए "संसाधन नहीं मिला" मिलता है, जो समझ में आता है - इसलिए ऐसा लगता है कि दूसरे क्रम में दिए गए वैध मार्ग के रूप में।
मुझे इस गायब नियंत्रक संदर्भ की घोषणा करने की आवश्यकता कहां है?
क्या एएसपी.नेट एमवीसी 2 आरटीएम के लिए रूटिंग आवश्यकताएं बदल गई हैं?
यह अभी भी एक वैध सवाल है या यह अस्थायी था: मैं कोड है कि अपने ब्लॉग पर MVC 3 के साथ काम करता पोस्ट किया है? क्या तुम्हें कभी कोई हल मिला? – jcolebrand
नहीं, अभी तक इसका समाधान नहीं मिला है। शायद एमवीसी 3 मुझे इसे हल करने की अनुमति देता है। थोड़ी देर के लिए इस पर वापस नहीं देखा है। –