2009-08-14 13 views
9

मैं एक मार्ग के लिए एक UrlHelper buiding हूँ best practicesUrl.RouteUrl रिटर्न अशक्त

में के रूप में समस्या यह है कि दिए गए मान हमेशा मान शून्य होगा जब में डीबगिंग में पाया गया कि

Url.RouteUrl (" एक्स ") वापसी अशक्त

Url.RouteCollection [" एक्स "] वापस जाने के मार्ग

मुझे क्या करना कोशिश कर रहा हूँ:

public static string Category(this UrlHelper helper, int Id, string category) 
{ 
    return helper.RouteUrl("X", new {id = Id, category= category}); 
} 

मैं, क्योंकि {आईडी} और {} श्रेणी जब अपने मार्गों पंजीकरण के लिए एक डिफ़ॉल्ट मान निर्दिष्ट नहीं किया है नहीं देख पा रहे हैं जहां मैंने कुछ गलत

+0

अपने Global.asax में, आप वास्तव में "एक्स" नाम के एक मार्ग दर्ज कर रहे हैं के लिए? – womp

+0

हां मार्गों के रूप में पंजीकृत एक मार्ग है। मैपराउट ("एक्स", "/ श्रेणी/{आईडी}/{श्रेणी}", नई {नियंत्रक = "श्रेणी", क्रिया = "सूची"}) – freddoo

उत्तर

15

ऐसा लगता है कि इस वजह से किया जा रहा है कर रहा हूँ कर सकते हैं।

Url.RouteUrl("x") शून्य वापस आ जाएगा क्योंकि आईडी और श्रेणी प्रदान करने के लिए कोई मूल्य नहीं है, और आपकी रूट परिभाषा में डिफ़ॉल्ट नहीं है।

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

जहां तक ​​आपकी वास्तविक यूआरएल सहायक विधि श्रेणी(), ठीक काम कर रहा है, यदि आप आईडी और श्रेणी के लिए एक गैर-शून्य या खाली मूल्य प्रदान कर रहे हैं। मैंने सचमुच कोड कॉपी किया और यह मेरे लिए काम करता है।

+2

मैंने सभी को सेट किया है डिफ़ॉल्ट और मुझे अभी भी यह समस्या है। – Shimmy

0

किसी कारण मैं अभी भी MVC रिलीज उम्मीदवार चल रहा था मैं MVC 1.0 स्थापित किया है और अब यह ठीक काम करता है

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