js文件中的jQuery ajax

时间:2012-05-07 17:13:20

标签: jquery asp.net-mvc asp.net-mvc-3 razor

我正在使用ASP.Net-MVC3,我在

中使用此查询

Layout.cshtml

$(function() {
    $.ajax({
        url: '@Url.Action("EtiketGetir", "Etiket")',
        type: "POST",
        data: {
            data: data
        },
        success: function(msg) {},
        error: function(msg) {}
    });​

这适用于layout.cshtml,但我复制了该代码并粘贴到test.js文件,它停止了工作。

3 个答案:

答案 0 :(得分:5)

这是因为只有剃刀处理@符号,但它不会与js个文件一起使用。

url: '@Url.Action("EtiketGetir", "Etiket")',

对于解决方案,请阅读这篇文章:
asp.net-mvc: razor '@' symbol in js file

答案 1 :(得分:1)

在这些情况下我通常做的是在我的javascript文件中创建一个初始化函数并将其传递给它:

// test.js
(function(test, $, undefined) {
    test.initialize = function(options) {
        this.someUrl = options.someUrl;
    }

    test.someFunctionThatUsesUrl = function() {
        $.ajax({
            url: this.someUrl
        });
    }
})(window.test = window.test || {}, jQuery);

然后在使用test.js的页面中,我将调用initialize函数:

<script type="text/javascript" src="test.js"></script>
<script type="text/javascript">
    test.initialize({
        someUrl: '@Url.Action("Index", "Home")'
    });

答案 2 :(得分:1)

我解决了使用此代码的问题

$(function() {
    $.ajax({
        url: '/ControllerName/IndexName/',
        type: "POST",
        data: {
            data: data
        },
        success: function(msg) {},
        error: function(msg) {}
    });​