我用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();
}
答案 0 :(得分:0)
ViewBag
只是在渲染页面时传递给视图的对象。
使用AJAX没有任何意义;您的服务器端Razor代码仅在初始服务器渲染时运行。
您需要将JSON作为响应服务器(使用Json()
)。