$ .ajax成功后获取ViewBag数据c#.net razor

时间:2016-05-11 16:17:34

标签: c# jquery .net ajax asp.net-mvc

我用ajax发布数据并且已成功发布。在控制器端,我正在填充一个ViewBag,其中包含已发布的数据,但我在从ViewBag获取数据时遇到问题。

这是Ajax代码:

$.ajax({
            type: "POST",
            url: '../Home/getExistUsersFromJSON',
            data: JSON.stringify({ jsonString: JSON.stringify(array) }),
            traditional: true,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            complete: function () {
                // Alert that it was succesful!
                var jsonList = '@Html.Raw(Json.Convert(ViewBag.newUsers))';
                var jsList = JSON.parse(jsonList);
                bootbox.dialog({
                    message: jsList,
                    title: "Utilisateurs",
                    buttons: {
                        success: {
                            label: "Success!",
                            className: "btn-success"
                        }
                    }
                });
            }
        });

这是控制器方面

 [ActionName("getExistUsersFromJSON")]
    public void getExistUsersFromJSON(string jsonString)
    {

        IList<newUser> ctm =
      new JavaScriptSerializer().Deserialize<IList<newUser>>(jsonString);
        ViewBag.newUsers = ctm.ToList();

    }

1 个答案:

答案 0 :(得分:0)

ViewBag只是在渲染页面时传递给视图的对象。

使用AJAX没有任何意义;您的服务器端Razor代码仅在初始服务器渲染时运行。

您需要将JSON作为响应服务器(使用Json())。