2011-09-07 12 views
26

Şöyle bir ajax çağrısı yapmaya çalışıyorum:Ekstra sorun ve sorun olmadan doğru Url.Action'ı JQuery yöntemine nasıl iletebilirim?

$('#Grid').load('@Url.Action("_AgentStatesGrid", "AgentStates", new { projectId = Model.SelectedProject, siteId = Model.SelectedSite })', null, refreshComplete); 

Ne yazık ki şu şekilde yorumlanır:

$('#Grid').load('/AgentStates/_AgentStatesGrid?projectId=179&siteId=0', null, refreshComplete); 

Gördüğünüz gibi & .a.m.p .; querystring için ampersand yerine (ben noktaya koydum, duh, web bunu bir işareti olarak yorumluyor.),

Url.Decode'u denedim ve hiçbir şey yapmadım. Sorunu anladığımdan emin değilim, böylece nasıl düzeltileceğine dair bir fikrim yok.

+1

deneyin @ Html.Raw (Url.Action ("_ AgentStatesGrid", "AgentStates", yeni {projectId = Model.SelectedProject, siteid = Model.SelectedSite})) – Steve

+1

Bu yaptı Steve! Bir cevap yapın, ben de onu kontrol edebilirim lütfen :-) –

cevap

52

@Html.Raw(Url.Action("_AgentStatesGrid", "AgentStates", new { projectId = Model.SelectedProject, siteId = Model.SelectedSite })) 

sayesinde deneyin

+9

Bunun biraz gerekli olduğunu hayal kırıklığına uğrattım. Yardım edemiyorum ama her zamanki kullanımda bir url.Action için bir bağlantı olduğunu düşünüyorum, bu nedenle (teknik olarak) hemen hemen tüm durumlarda Html.Raw gerektiren (doğru çalışan tek bir parametre durumunda tasarımdan daha fazla kazara daha fazla) . Ama sanırım insanlar 2011'den beri bununla mücadele ediyorlar, bu yüzden nuthin'in silahı değişiyor ... –

+1

Daha fazla katılıyorum. Her bir parametreyi kodlamalıdır, sonuçta elde edilen URL'yi değil. – ptutt

+6

Ve işareti kodlama? Ne düşünüyorlardı??? –