2009-08-20 21 views
5

Ajax çağrılarımda yanlış URL var.ASP.NET MVC ajax çağrılarında yanlış url

$.ajax({ 
    type: "POST", 
    url: "Home/GetDetails", 
    ...... 
}); 

HomeController'ın bir eylemi var GetDetails(). Ben URL HTP ile sayfayı yüklediğinizde

Tümü, gayet iyi çalışıyor: // localhost/projectName Ajax URL htp: // localhost/projectName/Ev/GetDetails

Ama htp yükledikten sonra: // localhost/ProjeAdı/Ana Sayfa/Dizin tüm ajax çağrıları htp: // localhost/projectName/Home/Home/GetDetails ve thats için yanlış gidiyoruz.

Lütfen bunu nasıl çözebilirim? URL'lerinizi oluşturmak için URL Helper kullanmalıdır

cevap

9

...

$.ajax({ 
    type: "POST", 
    url: "<%= Url.Action("GetDetails") %>", 
    ...... 
}); 
+1

Çoğunlukla hemen önce eğik çizgi koymak , ama burada Url olmalıdır.Aksiyon, Url.Content değil. –

+0

Kimin, sabit - teşekkürler @Craig. – Kieron

+0

iyi çalışıyor :) teşekkürler –

4

Eğer dizeleri ile sopa değil Url.Action, 'Ev'

url: "/Home/GetDetails" 
+1

Bu, uygulamanızın her zaman web sitesinin kökünde barındırıldığını varsayar. Eğer barındırılan birden fazla uygulamanız varsa, muhtemelen her uygulamanın kendi sanal dizini vardır. Sanal dizini de içeren URL'nin tamamını kodlayabilir veya URL'leri dinamik olarak oluşturmak için MVC'deki URL yardımcılarını kullanabilirsiniz (her zaman çalışması gerekir). – Eilon

+2

Oradaki javascript ile ayrı bir js dosyanız olduğunda ne yaparsınız? – leen3o

+0

Ben URL'leri (** gasp! **) kodlamak eğilimindedir. Zamanım varsa, sunucuda JavaScript'in geçerli değişkenlerine atanmış URL'leri olan bir JS dosyası olabilir, ancak bu konuda pragmatik değilim. – swilliams