【问题标题】:Illegal characters in path?路径中的非法字符?
【发布时间】:2012-11-19 07:29:09
【问题描述】:

我有以下脚本:

function PostChartValues(meter_id, range_type_id, start_date, end_date) {
    $.ajax({
        url: '@Url.Action("GetMeterReadingsTimeSeries", "Widget")',
        type: 'POST',
        data: { MeterType: meter_id, DateRangeType: range_type_id, StartDate: start_date, EndDate: end_date },
        beforeSend: function () {
            $("#chart_loading_div").show();
        },
        complete: function () {
            $("#chart_loading_div").fadeOut();
         },
        success: function (result) {
            $("#chart").html(result);
        },
        error: function (result) {
            alert("Seçilen kritere uygun veri bulunamadı!");
        }
    }); //end ajax
} //end PostChartValues

代码正在运行。但是当我收到上面代码的外部 .js 文件时,我得到了我在标题中写的错误。

为什么我会得到这个?

【问题讨论】:

  • 你能澄清一下吗?外部js文件是什么意思。

标签: jquery ajax asp.net-mvc


【解决方案1】:

你有 asp.net 代码,asp.net-mvc 不解析外部 js 文件,所以你实际上会尝试向@Url.Action("GetMeterReadingsTimeSeries", "Widget") 发出请求,这不是一个有效的 url。您必须在 js 文件中手动写入 Url.Action("GetMeterReadingsTimeSeries", "Widget") 的结果。

【讨论】:

    【解决方案2】:

    Musa is absolutely right,但要补充一点:

    解决此问题的一种方法是在 HTML(或视图)内的嵌入式脚本中提供渲染变量,如下所示:

    <!-- in your view -->
    <script type="text/javascript">
        var AJAX_URL = '@Url.Action("GetMeterReadingsTimeSeries", "Widget")';
    </script>
    

    然后,在您的外部 JavaScript 文件中:

    function PostChartValues(meter_id, range_type_id, start_date, end_date) {
        $.ajax({
            url: AJAX_URL,
            // ..
        });
    }
    

    为了避免变量名重叠,我使用全大写。

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2012-03-05
      • 2018-02-28
      • 2015-07-31
      • 2014-03-22
      • 2010-09-26
      • 1970-01-01
      相关资源
      最近更新 更多