部分视图中的MVC4 Ajax表单在kendo窗口内返回整个页面

我搜索和搜索,因为我的生活无法弄清楚我做错了什么。 我有一个像这样的Kendo UI窗口:

 events .Close("onCloseReminder") .Open("onOpenReminder") .Deactivate("function() { this.refresh();}") .Activate("function(){ $('#empNumBox').focus(); }") ) ) 

并且,如果窗口是iframe,所有这些都可以正常工作,但我不能将它作为Iframe,因为这意味着重新加载其中的所有脚本和样式,并且更难以引用父级。

所以这个窗口,从部分视图加载内容,如下所示:

 @using (Ajax.BeginForm("SetReminders", "Purchasing", new AjaxOptions { UpdateTargetId = "result" })) { 
}

部分观点也很好。 这是问题,当你提交ajax表单,并且kendo窗口不是iframe时,它将呈现整个页面,就像控制器返回的那样(我已经尝试了几件事,你可以在下面注释掉的代码中看到) :

  [HttpPost] public ActionResult SetReminders(int empNum, int podID) { //some database stuff that works fine string response; if (existingReminder == 0) { //more db stuff that also works fine db.SaveChanges(); response = "Success!"; } else { response = "Reminder exists."; //return PartialView("_LoadReminder", new string[] { "Reminder already exists!" }); } // $('#submitReminder_button').closest('.k-window-content').data('kendoWindow').close(); //alert('Hello world!'); //return Content("function(){alert('Hello world!');}"); return PartialView("_SubmitSuccess"); //return Json(response); //return Content(response, "text/html"); } 

如果有人好奇,_SubmitSuccess包含的所有内容都是“成功!”。

这是一个我发现ajax响应放在div中的例子,我遵循了这个例子: http : //pratapreddypilaka.blogspot.com/2012/01/htmlbeginform-vs-ajaxbeginform-in-mvc3.html

看来真正的问题是Kendo窗口,但是我还没有在他们的论坛上找到关于这个的东西,似乎没有很多使用kendo窗口来加载通过ajax提交表单的局部视图的例子并返回要在同一窗口中加载的不同局部视图,并且不使用iframe。

任何建议都欢迎,甚至代码的其他部分,我总是希望改进。

尝试将SetReminders()的返回类型更改为PartialViewResult