【发布时间】:2009-01-30 21:19:12
【问题描述】:
我开始学习 ASP.Net MVC(候选发布版),但遇到了一些麻烦。我可能只是挑剔,但我想我会问。
我想使用内置(扩展)ASP.Net Ajax 方法来调用我的控制器,称为“GetNames”,它返回一个 JsonResult 对象。我见过使用 $.getJSON() jQuery 方法的示例,但我更喜欢这样做:
<%using ( Ajax.BeginForm("GetNames", new AjaxOptions() { OnSuccess = "GetNamesSuccess", OnBegin = "GetNamesBegin", OnComplete = "GetNamesComplte", OnFailure = "GetNamesFailure" } ) ) { %>
<%=Html.TextBox("DummyData") %>
<input type=submit />
<% } %>
<script type="text/javascript">
function GetNamesSuccess()
{
alert("Success");
}
function GetNamesBegin()
{
alert("Begin");
}
function GetNamesComplete()
{
alert("Complete");
}
function GetNamesFailure()
{
alert("Failure");
}
</script>
当我单击提交按钮时,我没有收到任何警报,并且提示我下载包含 Json 对象文本的文件,我相信这表明至少控制器方法工作正常。但这不是我的预期行为......理想情况下,Ajax.BeginForm 将设置它,以便 Json 对象将传递给 OnSuccess 或 OnComplete 方法。
有没有办法做到这一点?
【问题讨论】: