如何将对象从一个视图传递到另一个视图

时间:2014-03-14 03:48:43

标签: jquery asp.net-mvc

您好我必须将选择网格行上的对象值传递给另一个视图。 我的代码cshtml代码是

var gview = $("#grdSearch").data("kendoGrid");

var selectedItem = gview.dataItem(gview.select());
if (selectedItem.address != undefined) {
    alert(selectedItem.address);
    window.location = '../PageSearch/Select?value:' + selectedItem;
}
else
    alert("NO Row Is SELECTED");

我的控制器代码是

[HttpGet]
    public JsonResult Select(Search value)
    {
        return Json(value, JsonRequestBehavior.AllowGet);
    }

问题是jQuery代码调用控制器操作selectedItem为空。 如何访问selectedItem内的数据?

2 个答案:

答案 0 :(得分:0)

看起来你需要:window.location.href如下所示:https://stackoverflow.com/a/1207465/599180

我认为selectedItem不会序列化为字符串,因此您可能需要JSON.stringify(selectedItem),如下所示:https://stackoverflow.com/a/21595823/599180

您必须确保Select()的参数类型与selectedItem序列化到您关注的字段匹配。

答案 1 :(得分:0)

查询字符串中传递的数据需要采用?key1=val1&key2=val2&key3=val3

形式

因此,要在查询字符串中传递对象属性值,您需要将javascript对象转换为此查询字符串格式,例如:

'../PageSearch/Select?address=' + selectedItem.address + '&somethingElse=' + selectedItem.somethingElse`

将数据提供给服务器的一种更简单的方法是使用jQuery POST它:

$.post( "../PageSearch/Select", selectedItem );

有关jQuery帖子的更多信息,请访问https://api.jquery.com/jQuery.post/