2012-11-19 104 views
1

我有以下腳本:路徑中的非法字符?

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文件時,我收到了我在標題中寫入的錯誤。

爲什麼我得到這個?

+1

你能澄清一下嗎?你是什​​麼意思的外部js文件。 –

回答

2

你在那裏有asp.net代碼,asp.net-mvc沒有解析外部js文件,所以你真的試圖向@Url.Action("GetMeterReadingsTimeSeries", "Widget")發出一個不是有效url的請求。您必須在您的js文件中手動輸入Url.Action("GetMeterReadingsTimeSeries", "Widget")的結果。

+0

是的。你說得對,它有效。非常感謝。 –

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, 
     // .. 
    }); 
} 

作爲一種嘗試避免重疊變量名稱的方法,我使用全部大寫。

相關問題