2010-07-16 67 views
0

使用jQuery的阿賈克斯()或獲得()方法,我們可以做一個異步調用ASP.NET MVC控制器動作,比如像這樣:構建控制器動作URL撥打

function(){ 
     $.get('<%=Url.Action("TitleToSlug", "Services", new { title = "Some title" }) %>', function (data) { 
      $('#SomeOtherTextbox).val(data); 
     }); 
    } 

如果什麼我們希望URL參數(在上面的例子中是「title」)是動態的,例如從頁面上的某個地方閱讀它?讓我說,在JavaScript內的ASP.NET MVC代碼塊內使用Url.Action()helper確實可行,但我無法弄清楚如何進行連接。

希望你明白我想要什麼 - 我想在標題文本框中插入「Some Title」所在的值。

回答

1

您可以使用虛假標題生成您的URL服務器端(永遠不會用作真實標題的內容,例如「BOGUS_TITLE」),並且客戶端代碼執行時將其替換爲實際動態值:

function(){ 
    var titleTemplate = '<%=Url.Action("TitleToSlug", "Services", new { title = "_BOGUS_TITLE_" }) %>'; 
    $.get(titleTemplate.replace('_BOGUS_TITLE_', realTitle), function (data) { 
     $('#SomeOtherTextbox).val(data); 
    }); 
} 
+0

有趣的想法 – mare 2010-07-16 23:26:29

+0

我認爲這將做到這一點。確認。 – mare 2010-07-17 10:24:01