Я пытаюсь открыть модальное всплывающее окно в приложении ASP.NET MVC3 и передать ему некоторые параметры.
Всплывающее окно содержит представление, определенное в файле с именем SearchArea.cshtml
Итак, вот что я написал:
Мой взгляд :
var coordinates = [];
//push some data in coordinates
//coordinates looks like : coordinates[0] = 45.25489, coordinates[1] = 5.14975, etc...
$("<div></div>")
.addClass("dialog")
.appendTo("body")
.dialog({
title: "TEST",
close: function () { $(this).remove(); },
modal: true,
height: 400,
width: 600,
left: 0
}).load('@Url.Action("Show", "SearchArea")', {'coordinates' : JSON.stringify(coordinates) });
Мой контроллер
public ActionResult Show(string coordinates)
{
List<Single> searchArea = JsonConvert.DeserializeObject<List<Single>>(coordinates);
return View(searchArea);
}
Однако это то, что я получаю:
Когда я отлаживаю шаг за шагом, searchArea
имеет хорошие значения, поэтому я думаю, что сериализация/десериализация - это нормально. Представление, которое должно быть загружено, тоже ОК, я попытался отобразить его и не возникла ошибка.
Где я ошибаюсь? Я видел это, это и многие другие, но я не могу исправить свои ошибки... Может ли кто-нибудь помочь мне?
Наконец нашел решение вчера.
Вместо строкового массива я строю coordinates.Join(',')
Join coordinates.Join(',')
. Это работает, но это уродливо. Поэтому я работаю над созданной моделью, содержащей все нужные поля, а затем передаю ее в мое представление. Он должен работать, я пробовал со значениями манекенов и, похоже, работал