我正在尝试使用Ajax.BeginForm()从控制器发布一个Json结果(我正在使用MVC3).调用Json结果时,应将其发送到javascript函数并使用提取对象
var myObject = content.get_response().get_object();
但是,在尝试调用Ajax POST时,它只会引发“ Microsoft JScript运行时错误:对象不支持此属性或方法”.
我的代码:
控制器:
[HttpPost]
public ActionResult Index(string message)
{
return Json(new { Success = true, Message = message });
}
视图:
<!DOCTYPE html>
<html>
<head>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<script type="text/javascript">
function JsonAdd_OnComplete(mycontext) {
var myObject = mycontext.get_response().get_object();
alert(mycontext.Message);
}
</script>
</head>
<body>
<div>
@using(Ajax.BeginForm("Index", "Home", new AjaxOptions() { HttpMethod = "POST", OnComplete = "JsonAdd_OnComplete" }))
{
@Html.TextBox("message")
<input type="submit" value="SUBMIT" />
}
</div>
</body>
</html>
奇怪的是,完全相同的代码可以在MVC2中使用-这是一个错误,还是我忘了一些东西?
提前致谢.
解决方法:
ASP.NET MVC 3 RC MS中的AFAIK已被弃用,而所有Ajax.*帮助方法都使用jQuery. Javascript也已变为unobtrusive.这意味着您不再需要调用.get_response().get_object(),而只需:
function JsonAdd_OnComplete(myObject) {
// here myObject is already the JSON object
// as returned by the controller action
alert(myObject.Message);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。