【问题标题】:jQuery ajax in js filejs文件中的jQuery ajax
【发布时间】:2012-05-16 04:51:56
【问题描述】:

我正在使用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 文件中,但它停止了工作。

【问题讨论】:

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


    【解决方案1】:

    这是因为只有razor 处理@ 符号,但它不处理js 文件。

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

    有关解决方案,请阅读此帖子:
    asp.net-mvc: razor '@' symbol in js file

    【讨论】:

      【解决方案2】:

      在这些情况下,我通常会在我的 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")'
          });
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 这仅适用于本地而不适用于服务器(主机应用程序)
        猜你喜欢
        • 2015-10-22
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 2015-04-23
        • 1970-01-01
        • 2016-08-20
        • 1970-01-01
        • 2016-01-09
        相关资源
        最近更新 更多