c# - ASP.NET MVC3 - 使用 Javascript 的错误

标签 c# javascript asp.net-mvc ajax asp.net-mvc-3

我正在尝试使用 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/

相关文章:

javascript - 每次调整窗口大小时,调整大小函数事件都会触发 2 次以上

nTier 应用程序中的 .Net 成员(member)资格

c# - 在 Windows 8.1 运行时应用程序中动态加载 Xaml

javascript - 如何使用 jest 在一定时间的模拟时间后运行断言测试?

javascript - jqGrid 如何操作 : Get the value of specific cell upon double click on row

c# - 数据注释 - DisplayFormat - 格式化数字字符串

c# - 数据库中的 Asp.net MVC 页面标题

c# - 实时 C# websockets 客户端与 Unity3D 一起使用?

带有接口(interface)的 C# 重载方法行为

c# - c#调用窗体后如何返回调用方法?