Jquery .Post不显示返回的数据

时间:2013-05-20 17:58:03

标签: asp.net-mvc-3 jquery kendo-grid

使用kendo open source with mvc3。

我有一个带可选行的kendo网格。选择行时,它应该向控制器方法发送一个值,然后根据该值呈现一个新视图。我肯定知道控制器方法被命中,返回正确的数据并提供正确的视图。使用chrome web开发人员工具,我可以在响应时看到呈现的页面,但浏览器中的视图永远不会改变。所以它一直有效,直到实际看到它为止。

我在kendo脚本中的js:

        selectable: true,
        change: function (e) {
            var row = this.select();
            var detailId = this.dataItem(row).PersonId;

            $.post('@Url.Action("Detail", "Person")', { id: detailId });

        }

控制器方法:

    [HttpPost]
    public ActionResult Detail(int id)
    {

        var model = new Person();

        model = db.Person.Where(x => x.PersonId == id).FirstOrDefault();

        return View(model);
    }

任何想法为什么它不会渲染?

======= EDIT ===========

我没有在这里使用ajax函数,因为我不希望任何类型的响应返回到js函数。我希望id sen到服务器端方法,我希望方法运行,然后提供新视图,然后我希望它发送到客户端并呈现。除了最后一步,它在客户端上进行渲染。我应该使用不同的jquery方法吗?

1 个答案:

答案 0 :(得分:1)

虽然我对kendo网格不是很精通但我确定你会以某种方式需要处理$.post()的响应。

你应该使用$.post(url,data,handler)的这个重载; 理想情况下,你将在你的js代码

中有这样的东西
$.post('@Url.Action("Detail", "Person")', { id: detailId }, function(data){
 //now render the data wherever you want
});