来自Javascript的Html.Action包括js var作为参数

时间:2015-01-08 16:04:59

标签: javascript asp.net asp.net-mvc asp.net-ajax

我在调用方法时遇到了麻烦。我可以用下面的代码来做,但如何在我的电话中放入js var?

            $.ajax({
                url: '@Url.Action("surfacepost", "surface", new { text = "ThisSchouldBeAJaVar" })',
                method: 'GET',
                success: function (data) {

                }
            });

事实上,当我要显示时,这个mthode会变得偏僻。因此,如果有更好的动态加载方式使用js,请告诉我。 感谢

1 个答案:

答案 0 :(得分:2)

问题是'@ Url.Action()'方法是由.NET执行的,在页面发送到浏览器之前,它不知道页面上有任何javascript,并且方法的执行不能受页面“离开服务器”后运行的javascript的影响

您可以做的是创建占位符,并在javascript中替换它:

var url = '@Url.Action("surfacepost", "surface", new { text = "placeholder" })'
url.replace('placeholder', ThisSchouldBeAJaVar);

$.ajax({   
url: url,
    method: 'GET',
    success: function (data) {

    }
});

或者您可以输入网址并附加var:

$.ajax({   
url: '/surface/surfacepost/?text=' + ThisSchouldBeAJaVar,
    method: 'GET',
    success: function (data) {

    }
});