У меня есть вид загрузки PartialView через jQuery. PartialView имеет ViewData, к которому должен обращаться JQuery, но я не могу получить его от jQuery. Приведенный ниже код использует плагин HighChart JQuery (и это только тестовый код взят из примера страницы HighChart):Как я могу получить доступ к ViewData в PartialView из jQuery в MVC?
<script type="text/javascript">
var chart1; // globally available
$(document).ready(function() {
$('#reportButton').click(function (event) {
var actionUrl = '<%= Url.Action("UserReport") %>';
var customerId = $('#customersId').val();
var month = $('#monthsId').val();
var employees = '<%= ViewData["Employees"] %>'
alert(employees);
$.get(actionUrl, { customerId: customerId, month: month }, function (data) {
$('#result').html(data);
getHighChart();
});
});
});
function getHighChart() {
var employees = '<%= ViewData["Employees"] %>'
alert(employees);
chart1 = new Highcharts.Chart({
chart: {
renderTo: 'chart-container-1',
defaultSeriesType: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: [employees]
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [{
name: 'Jane',
data: [1, 0, 4]
}, {
name: 'John',
data: [5, 7, 3]
}]
});
}
</script>
Это JQuery в главном окне, потому что я не знаю, как я мог бы поставить его в PartialView с функцией готовности документа. Но, поместив вызов функции HighChart в обратный вызов функции get(), он работает в частичном представлении. Но доступ к ViewData не ...
Как я могу это достичь? Мне нужно получить данные из метода действий PartialView, чтобы заполнить данные HighChart ...
Спасибо, что работали в столько, сколько я могу теперь получить данные в JQuery. Тем не менее, оказывается, что делать это, как будто это не дает мне данные в правильной форме, видимо. Моя идея состояла в том, чтобы создать строку в контроллере (в основном ViewData [«Сотрудники»] = «« Joe »,« Jane », но созданная в цикле) и передать ее в представление. Но это только набрало мне странную строку на диаграмме ... Итак, как мне получить данные в параметре highchart в правильной форме? (категории: ['Джейн', 'Джо'])? – Anders
не уверен, я не знаю много о плагине с высокой четкости. но похоже, что вам нужно сериализовать данные в JSON. – RPM1984
Хорошо, спасибо. Я попробую отдельный пост об этом. – Anders