2012-11-19 5 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-адресом. Вам придется вручную записать результаты из Url.Action("GetMeterReadingsTimeSeries", "Widget") в файл js.

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

как способ, чтобы попытаться избежать дублирования имен переменных, я использую все-шапку.

Смежные вопросы