2009-10-12 10 views
5

का उपयोग कर स्लैश मैं इस तरह का URL उपयोग करने की आवश्यकता:n के साथ ASP.net मार्गों निपटने regex

http://mydomain.com/Box/Categ1/Categ2/Categ3/.../CategN/id1,id2,id3,...,idN

तो मैं एक नया मार्ग इस तरह से बनाने की कोशिश की ...

routes.MapRoute(
    "Box", 
    "Box/{data}", 
    new { controller = "Box", action = "Index"}, 
    new { data = @"([a-zA-Z0-9-,]+/?)+" } 
); 

लेकिन यह अभी काम नहीं करता है। अगर मैं "/" (slashes) के बजाय किसी भी char का उपयोग करता हूं तो यह ठीक काम करता है। क्या स्लेश का उपयोग करना संभव है? मैं वास्तव में इस तरह के यूआरएल देखना चाहता हूँ।

उत्तर

11

यदि आप बॉक्स के बाद आने वाले सभी चीज़ों के लिए डेटा वैरिएबल सेट करना चाहते हैं, तो बस कैच-ऑल पैरामीटर का उपयोग करें।

routes.MapRoute(
    "Box", 
    "Box/{*data}", 
    new { controller = "Box", action = "Index"} 
); 
+0

वास्तव में ... धन्यवाद आदमी! – Wellington

+0

कोई समस्या नहीं है। डिफ़ॉल्ट रूप से, एएसपीएनटी एमवीसी रूटिंग इंजन स्लैश का उपयोग करके विभाजक के रूप में सबकुछ को टोकन में अलग करता है ... इसलिए मुझे यकीन नहीं है कि यह नियमित अभिव्यक्तियों में कैसे काम करेगा, लेकिन शायद अच्छी तरह से नहीं;) – womp

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