2012-05-07 3 views
2

Я использую ASP.Net-MVC3 и я использую этот запрос вJQuery Ajax в JS файл

Layout.cshtml:

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

Это работает в layout.cshtml, но я скопировал этот код и вставить в файл test.js и он прекратил работать.

ответ

1

я решить мою проблему, чтобы использовать этот код

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

Это работает только в локальном, а не на сервере (хост-приложение) – iamCR

5

Это потому, что только бритва обрабатывает знак @, но он не делает это с js файлами.

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

Для решения прочитать этот пост:
asp.net-mvc: razor '@' symbol in js file

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 Я буду называть функцию инициализации:

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