2013-05-20 97 views
3

使用kendo开源与mvc3。Jquery .Post不显示返回的数据

我有一个可选行的剑道网格。当选中一行时,它应该向控制器方法发送一个值,然后根据该值呈现一个新的视图。我确定控制器方法已经命中,返回正确的数据并提供正确的视图。使用chrome Web开发人员工具,我可以在响应中看到呈现的页面,但浏览器中的视图始终不会更改。所以它一直工作,直到它真正看到。

我的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); 
    } 

任何想法,为什么它不会呈现?

======= ===========编辑

,因为我不希望任何一种反应回来的js函数我这里没有使用AJAX功能。我希望ID sen到服务器端的方法,我想要的方法运行,然后提供新的视图,然后我想它发送到客户端和呈现。它只做最后一步,在客户端渲染。我应该使用不同的jQuery方法吗?

回答

1

虽然我不是非常精通剑道网格im确定你会以某种方式需要处理$.post()的响应。

你应该使用这个$.post(url,data,handler)的超负荷; 你最好你会在你的js代码

$.post('@Url.Action("Detail", "Person")', { id: detailId }, function(data){ 
//now render the data wherever you want 
}); 
+0

感谢Parv这样的事情,但我不想回来的客户端功能的响应。 – BattlFrog

+0

在你的问题中提到你想让你的新视图呈现出来。那么您从$ .post获取的数据会添加到某个位置,以便它显示在页面上 –