2009-11-20 20 views
6

किसी कारण से मेरा मार्ग मेरे एमवीसी पृष्ठों तक पहुंचने और बस मुझे 404 देने के किसी भी प्रयास को अनदेखा कर रहा है।एएसपी.नेट एमवीसी को एएसपी.नेट वेबफॉर्म में मिलाकर

वर्चुअल निर्देशिका: बात

तो मैं आमतौर पर इतना की तरह मेरी साइट तक पहुंचने:

The I एक WebForms ऐप को निम्न तरह की स्थापना की है मेरे एएसपी.नेट वेबफॉर्म ऐप का मूल स्टैक्चर फ़ाइल सिस्टम को प्रतिबिंबित करता है, इसलिए मेरे पास .aspx फ़ाइलों से भरा फ़ोल्डर्स हैं और मुझे टी का उपयोग करने में सक्षम होना चाहिए उस तरह हेम। किसी कारण से जब मैं इस तरह के रूप MVC मार्ग का उपयोग कर एक पेज तक पहुँचने का प्रयास:

मैं सिर्फ 404 त्रुटि मिली। मैंने अपने आप पर एएसपी.नेट एमवीसी का इस्तेमाल किया है और मुझे पता है कि अगर मैंने अपने फ़ोल्डरों को सही तरीके से स्थापित नहीं किया है, तो मुझे 404 नहीं मिलेगा। मुझे कारण मिलेगा कि पेज क्यों नहीं मिला और संकेत जहां फाइलें होनी चाहिए। नीचे मेरी रूटिंग जानकारी है। मुझसे कहां गलती हो रही है?

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 
    routes.MapRoute(
     "Default", 
     // Route name 
     "{controller}/{action}/{id}", 
     // URL with parameters 
     new { controller = "Home", action = "Index", id = "" } 
     // Parameter defaults 
    ); 
} 

protected void Application_Start() 
{ 
    RegisterRoutes(RouteTable.Routes); 
} 

उत्तर

2

आप मुझे बता सकते क्या ओएस आप और क्या इस साइट VS.NET वेब देव सर्वर या आईआईएस के तहत चल रहा है चला रहे हैं?

एमवीसी में रूटिंग एक नियंत्रक वर्ग और फिर एक विशिष्ट कार्य विधि के लिए अनुरोध निर्देशित करता है। क्या आपके पास इंडेक्स नामक विधि के साथ होमकंट्रोलर नामक एक कक्षा है?

आप यह मानते हुए एक नियंत्रक कि यह इस देखा ...

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

... तो यूआरएल आप का उल्लेख काम करना चाहिए था। हालांकि, एएसपी.नेट एमवीसी आपके वीडीआईआर के तहत दृश्य \ होम या व्यू \ शेयर नामक फ़ोल्डर में होम कंट्रोलर से जुड़े किसी भी विचार को ढूंढने की उम्मीद करेगा। इस मामले में, इंडेक्स एक्शन के लिए, यह इंडेक्स.एएसपीएक्स (या .ascx) नामक एक दृश्य ढूंढने की उम्मीद करेगा। हालांकि, एक लापता व्यू आमतौर पर 404 में नहीं होता है - आमतौर पर नियंत्रक द्वारा नहीं पाया जा रहा है, कार्रवाई विधि नहीं मिल रही है, या आईआईएस 6 एएसपीनेट पाइपलाइन vdir के लिए वाइल्डकार्ड सेटिंग्स में नहीं है।

अद्यतन:

आप सुनिश्चित करें कि आपके web.config जगह में MVC HttpHandler है कर रहे हैं (ताकि MVC ASP.NET पाइप लाइन में है)। आप अपने 'httpModules' web.config की धारा में कुछ इस तरह होना चाहिए ...

<add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

... अपने httpHandlers खंड में है और इस ...

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

...।

अद्यतन 2:

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

+0

विंडोज 7 x64 - II7.5 - साइट आईआईएस के तहत चल रही है। मेरे पास सम्मेलन हैं। इंडेक्स() विधि के साथ होमकंट्रोलर नामक एक नियंत्रक। मेरे पास दृश्य/होम/इंडेक्स नामक दृश्य भी है। –

+0

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

+0

क्या आपको कोई ब्रेकपॉइंट मारा जा रहा है? घटना दर्शक में अपवाद? –

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