2012-09-14 12 views
10

Bir MVC4 uygulamasına sahibim, ancak öncelikle WebAPI parçaları için kullanıyorum. Kullanıcıya geri gönderilen bir "düz eski HTML" dosyasına sahip olmak istiyorum (daha sonra JSON'u webapi denetleyicilerinden çekmek için KnockoutJS veya KendoUI kullanacak).MVC4 - Kökünü "normal" işlenmemiş bir html sayfasına yönlendirmenin bir yolu var mı?

routes.IgnoreRoute("{page}.html"); 

Sonra göz eğer "localhost index.html /" başarıyla sadece benim .html sayfa çıkıyor için:

Bunu yapabileceğini biliyorum. Ancak, gerçekten index.html döndürmek için "root" varsayılan yolunu "localhost /" ile eşlemek istiyorum.

bu çalıştı:

routes.MapPageRoute("root", "", "~/index.html"); 

ama bu hatayı atar:

There is no build provider registered for the extension '.html'. You can register one in the <compilation><buildProviders> section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.

herkes bu işi yapabilir konusunda herhangi bir fikir var mı? Düz bir html sayfası döndüren bir varsayılan denetleyiciye isabet edebilirdim, ancak bir ASP.NET yığınının tümünü HTML sayfası için bir kez daha geçmesi gibi görünüyor, ki bu sadece ASP.NET yığınına geri dönmek için bir WebAPI URL'si çağırıyor. sayfanın modeli için bazı JSON verilerini almak.

Temel olarak sadece tüm MVC tesisatlarını "atlamak" istiyorum ve IIS'in bir ASP.NET uygulaması değilse sanki html sayfasını geri göndermesini veya en azından mümkün olduğunca az işlem gerçekleştirmesini istiyorum.

routes.IgnoreRoute(""); 
+0

Ama MVC rotalara aldıktan sonra, zaten ASP.Net ulaştınız: – McGarnagle

+0

Evet ve ASP.NET'e biraz dokunarak sorun yok. Az önce boş bir kontrolörün fazla olduğunu düşündüm. Göz ardı rotası ile en azından kontrolörü çağırıp çağırmak zorunda kalmaz. – CodingWithSpike

cevap

12

yönlendirme config aşağıdaki ekleyin. IIS'nin bunu işlemesini istiyorsanız, yeniden yazma kuralları ve benzeri gibi sunucu düzeyinde ayarlamalısınız.
+0

Ah, elbette! Çok basit, neden bunu düşünmedim? :) Teşekkürler! – CodingWithSpike

+0

Temel bir WebApi projesi oluşturursam, bir index.html ekleyin ve ayrıca yukarıdaki satırı RouteConfig sınıfıma eklerseniz, 404 sayfam var, bir şey özlüyor muyum? – AlexandruC

+0

A.K Diğer rotalarınızdan önce 'routes.IgnoreRoute (" "); – bonh

İlgili konular