2008-11-07 16 views
22

.NET 3.5 SP1 framework kullanıyorum ve uygulamada URL yönlendirme uygulamıyorum. Ben JavaScript hatalarını başlamıştı: my yönlendirme microsoft axd dosyalarını alıp düzgün javascript aşağı gönderiyor çünkü inanıyorumNasıl asp.net formları rotayı göz ardı etme URL yönlendirme

Error: ASP.NET Ajax client-side framework failed to load.
Resource interpreted as script but transferred with MIME type text/html.
ReferenceError: Can't find variable: Sys

olduğunu. Biraz araştırma yaptım ve beni axd aşağıda gibi görmezden izin vermelidir ki, Routes.IgnoreRoute kullanabileceği bulundu:

: Benim Global.asax o çizgiyi eklerken bu hatayı alıyorum

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

Ama

CS1061: 'System.Web.Routing.RouteCollection' does not contain a definition for 'IgnoreRoute' and no extension method 'IgnoreRoute' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?)

System.Web.Routing ad alanı içe aktarıldı, herhangi bir fikir var mı?

cevap

39

ASP.NET MVC'ye başvurmanıza gerek yoktur. Öyle gibi IRouteHandler uygulayan StopRoutingHandler kullanabilirsiniz:

routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler())); 

Bu .NET 3.5 SP1 bir parçasıdır ve MVC gerektirmez. IgnoreRoutes yöntemi, ASP.NET MVC'nin bir parçası olan bir kolaylık uzantısı yöntemidir.

+0

Teşekkürler, bu çok yardımcı oldu. – Austin

+0

ASP.NET Çekirdeğinde (MVC 6) '* .php' dosyalarını nasıl duyardım? Bu çok farklı! – jp2code

1

MapRoute ve IgnoreRoute, System.Web.Mvc'de uzantı yöntemleridir --- bu derleme düzgün başvurulan var mı?

+0

MVC kullanmıyorum, bu yüzden bu montajı referans aldım. IgnoreRoute'u kullanabilmek için MVC derlemesini ayrı olarak indirmem gerekiyor mu, yoksa .NET 3.5 SP1'in bir parçası mı olmalı? – Austin

3

Ayrıca, IgnoreRoutes kuralınızın sırasının doğru sırada olduğundan emin olmanız gerektiğini de eklemekteyim, aksi halde ilk rotanız ilk önce uygulanacak ve IgnoreRoute öğesinin ... göz ardı edilmesine izin verilecektir.

8

Eski bir soru ama durumda hala bu benim için çalıştı, kimseye yardımcı olur: standart ASP.NET'te "IgnoreRoute" yöntemi görünür oysa yöntem var

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

"Yoksay" değil (yani MVC kullanılmıyor). Bu, Haacked'in koduyla aynı sonucu elde edecektir, ancak biraz daha temizdir ...

+1

Doğru ancak Ignore yöntemi .Net 4.'den başlayarak kullanılabilir. OP, 3.5 SP1 kullanıyor. –