在JQuery AJAX调用中构造控制器动作URL

时间:2010-07-16 22:42:45

标签: jquery asp.net-mvc

使用JQuery的ajax()或get()方法,我们可以对ASP.NET MVC控制器操作进行异步调用,例如:

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

如果我们想要URL参数(在上面的情况下为“title”)是动态的,例如从页面上的某个地方读取它?让我说在javascript中的ASP.NET MVC代码块中使用Url.Action()帮助程序确实有效,但我无法弄清楚如何进行连接。

希望你明白我想要的东西 - 我想在那里插入“Some title”所在的Title文本框的值。

1 个答案:

答案 0 :(得分: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); 
    }); 
}