7

मैं MVC4.0rcasp.net MVC के में एक अवधि के साथ GET अनुरोध प्राप्त नहीं होता है यह

साथ .net4.5rc उपयोग कर रहा हूँ

नीचे कोड एक MVC WebAPI आवेदन से लिया जाता है, लेकिन मैं एक ही व्यवहार है वहाँ reular asp.net MVC के लिए

मेरे registerroutes कोड इस

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapHttpRoute(
       name: "R1", 
       routeTemplate: "product/{id}", 
       defaults: new { 
           controller="Product", 
           id = RouteParameter.Optional 

           } 
      ); 

इस आईडी कि उन में एक अवधि नहीं है के साथ अच्छी तरह से काम की तरह लग रहा है। हालांकि जब मैं इसमें एक अवधि के साथ एक उत्पाद की मांग करता हूं, तो कॉल एएसपी.NET

पर मिलता है जब मैं नीचे की सेटिंग का उपयोग करता हूं जैसा कि पीछे की ओर/ है, लेकिन यह सारांश में यह

बिना काम नहीं करता

http://mysite.com/product/AZ0  //works 
http://mysite.com/product/AZ.0/ //work with relaxedUrlToFileSystemMapping 
http://mysite.com/product/AZ.0 //does not work 

प्रतिक्रिया 404 है और मैं इस आईआईएस द्वारा ASP.NET से जुड़े बिना दिया जाता है लगता है। जब मैं ऊपर पिछले एक तरह एक यूआरएल के साथ routedebugger चलाने के लिए, मैं भी routedebugger सामान

मैं कैसे जब वहाँ एक पैटर्न के साथ एक यूआरएल है आईआईएस ASP.NET करने के लिए नियंत्रण बढ़ाने के लिए कर सकता हूँ नहीं मिलता: mysite.com/product/{id} इस पर ध्यान दिए बिना कि आईडी में कोई अवधि है या नहीं।

धन्यवाद।

उत्तर

7

मुझे इसे स्वयं जवाब दें। एक यूआरएल रिवाइट जोड़ना समस्या हल करता है। वेब.कॉन्फिग में जोड़ा गया कोड URL के रूप में यूआरएल को फिर से लिखने के लिए कहता है, यदि यूआरएल फॉर्म (उत्पाद/) है, तो इसे अब फ़ाइल के रूप में संभाला नहीं जाता है लेकिन नियमित एमवीसी के रूप में संभाला जाता है।

<system.webServer> 
    .... 
    <rewrite> 
     <rules> 
     <rule name="Add trailing slash" stopProcessing="true"> 
      <match url="(product/.*\..*[^/])$" /> 
      <action type="Rewrite" url="{R:1}/" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
संबंधित मुद्दे