【发布时间】:2012-09-25 10:27:30
【问题描述】:
我有一个控制器动作,它被 JQuery ajax 调用,并希望将“结果”的内容返回到请求页面。 到目前为止,我...
控制器
public ActionResult DynCalc(resultsModel model){
...
//code that populates model - all working ok
...
if (Request.IsAjaxRequest())
{
return PartialView("results", model.Results);
}
else
{
return null; //Handle this later
}
}
这会传回一个有效的模型。 从javascript调用:
$.ajax({
url: "/Test/DynCalc",
type: "POST",
data: $("#frmResults").serialize(), //This part works
dataType: "html",
success: function (result) {
$('#resultsSection').html(result);
$('#hide_panel a').flash("#111", 1000);
}
});
永远不会成功。希望有人能告诉我我很愚蠢并且遗漏了一些明显的东西?
我的部分视图结果只是一个带有 javascript 的 HTML 页面。如果我只有以下
Hello world 在我的结果视图中,然后它可以正常工作,在任何脚本中,它都不会
我在正确的轨道上吗?我应该更改控制器上的返回类型吗?还是使用 JSON?
我没有发布结果页面的内容,因为它是整个文档还是只是 <b>hi</b> 都没有关系 - 它做同样的事情。
【问题讨论】:
-
通过 JQ 我假设你的意思是 jquery?我建议使用带有 Firebug 的 Firefox 来调试它。您可以单步执行它并查看实际发生的情况,并监控网络流量。还要添加一个失败/错误事件处理程序,因为如果它不成功,它的失败/错误也会告诉你一些事情。
-
@DaleBurrell 是的,我还添加了一个失败处理程序,并且每次都被命中,
results是一个对象 - 我无法检查。 -
您无法在 Firebug 中检查它?
-
我不使用 Firebug。我确实签入了一个类似的 Chrome 扩展程序,但我认为我的观点有误。我先看看里面的代码。
-
Doh,模型发生了一些变化,导致一段 Jquery 无效。它现在渲染,但这仍然是最好的方法吗?改为返回 JSOn 有什么好处吗?感谢您对浏览器中的检查器的想法,但有时会忘记它;)
标签: c# ajax asp.net-mvc asp.net-mvc-3 jquery