通过JSON将参数传递给ASP.NET MVC3中的模式弹出窗口

时间:2013-10-22 20:08:52

标签: jquery json asp.net-mvc-3 popup modal-dialog

我正在尝试在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);
}

然而,这是我获得的:

popupModal

当我逐步调试时,searchArea具有良好的值,所以我认为序列化/反序列化是可以的。应该加载的视图也可以,我试图显示它并且没有错误发生。

我哪里错了?我见过thisthis和其他很多人,但我无法纠正错误......有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

昨天终于找到了解决方案。

我将字符串化为coordinates.Join(','),而不是对数组进行字符串化。这有效,但这很难看。 所以我正在创建一个包含所有想要的字段的模型,然后将它传递给我的视图。它应该工作,我尝试与虚拟价值,它似乎工作