我正在尝试使用 Ajax.BeginForm() 从我的 Controller (我使用的是 MVC3)发布一个 Json 结果。当 Json 结果被调用时,它应该被发送到一个 javascript 函数并使用提取对象
var myObject = content.get_response().get_object();
然而,当尝试调用 Ajax POST 时,它只会抛出“Microsoft JScript 运行时错误:对象不支持此属性或方法”。
我的代码:
Controller :
[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 AJAX 中的 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);
}
关于c# - ASP.NET MVC3 - 使用 Javascript 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539853/