路径中的非法字符?
问题描述:
我有以下脚本:路径中的非法字符?
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文件时,我收到了我在标题中写入的错误。
为什么我得到这个?
答
你在那里有asp.net代码,asp.net-mvc没有解析外部js文件,所以你真的试图向@Url.Action("GetMeterReadingsTimeSeries", "Widget")
发出一个不是有效url的请求。您必须在您的js文件中手动输入Url.Action("GetMeterReadingsTimeSeries", "Widget")
的结果。
+0
是的。你说得对,它有效。非常感谢。 –
答
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,
// ..
});
}
作为一种尝试避免重叠变量名称的方法,我使用全部大写。
你能澄清一下吗?你是什么意思的外部js文件。 –