使用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方法吗?
答案 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
});