2009-11-20 14 views
6

Bazı nedenlerden dolayı, yönlendirmem, MVC sayfalarına erişme ve yalnızca 404'leri vermeme girişimini göz ardı ediyor.ASP.NET MVC'yi ASP.NET WebForms'ına karıştırma

Sanal Dizin:: şey

yüzden genellikle şöyle siteme ulaşmak:

The Ben WebForms aşağıdaki gibi ayarlanmış uygulaması vardır ASP.NET WebForms uygulamasının orijinal yapısı, dosya sistemini yansıtır, böylece .aspx dosyalarının bulunduğu klasörlere sahip olurum ve hem de öyle. Nedense ben gibi MVC yönlendirme kullanarak bir sayfaya erişmeye çalıştığınızda:

Sadece 404 hatası alıyorum. ASP.NET MVC'yi kendi başıma kullandım ve klasörleri düzgün bir şekilde ayarlamadım bile 404 elde edemeyeceğimi biliyorum. Sayfanın bulunamamasının nedenlerini ve ipuçlarını dosyaların olması gereken yer. Aşağıda benim yönlendirme bilgilerim. Nerede yanlış gidiyorum?

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); 
} 

cevap

2

Eğer üzerinde ve bu site VS.NET Web Dev sunucu veya IIS altında çalışan olup olmadığını koşuyoruz hangi işletim sistemi söyleyebilir mi?

MVC'de yönlendirme, bir Denetleyici sınıfına ve ardından belirli bir Eylem yöntemine bir istek yönlendirir. Dizin adlı bir yöntemle HomeController adlı bir sınıfınız var mı? Size varsayarsak

o zaman söz url çalışmalıdır, bu görünüyordu bir denetleyici ...

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

... vardı. Ancak, ASP.NET MVC, Ev denetleyicisiyle ilişkilendirilmiş görünümleri Views \ Home veya vdir'inizin altındaki Views \ Shared adlı bir klasörde bulmayı bekler. Bu durumda, Dizin eylemi için Index.aspx (veya .ascx) adlı bir görünüm bulmayı bekler. Ancak eksik bir görünüm genellikle 404 ile sonuçlanmaz - genellikle bulundu olmamak denetleyici neden oluyor, eylem yöntemi bulundu varlık değil, veya IIS 6 üzerinde asp.net boru hattı VDIR için joker ayarlarında olmamak.

güncelleme:

web.config yerinde MVC HttpHandler var emin misiniz (şimdiye MVC ASP.NET boru hattı olduğunu) gösterir. Sen web.config için 'httpModules' bölümünde ...

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

<add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
sizin httpHandlers bölümünde

... ve bu ... ... böyle bir şey olması gerekir.

güncelleştirme 2: Sana boru hattı ASP.NET MVC daha almadı ettik şüpheli yorumlarınızı üzerine

esas alınmıştır. Web’i almalısın.yapılandırın ve yeni oluşturulmuş bir MVC sitesinden biriyle karşılaştırın ve eksik yapılandırma öğelerini arayın. Yukarıda bir çift önerdim, ama daha fazlası olabilir.

+0

Windows 7 x64 - II7.5 - Site IIS altında çalışıyor. Sözleşmeler yerinde var. Index() yöntemiyle HomeController adlı bir denetleyici. Ayrıca Views/Home/Index denen bir Görünümüm var. –

+0

Denetleyicilere ve görünümlere sahip olmasaydım bile, 404 elde edemezdim, rotanın neden başarısız olduğunu anladım. Bu bana yöneltmenin berbat olduğuna inanmamı sağlıyor. –

+0

Vurulduğu herhangi bir kesme noktası var mı? Etkinlik görüntüleyicide istisnalar var mı? –