我有这个索引操作:
public ActionResult Index()
{
var repo = (YammerClient) TempData["Repo"];
var msgCol = repo.GetMessages();
ViewBag.User = repo.GetUserInfo();
return View(msgCol.messages);
}
GetMessages 返回 POCO 消息列表,GetUserInfo 返回包含用户信息(id、名称等)的 POCO。
我想用用户信息的 JSON 表示形式填充 JavaScript 变量。
所以我想在 View 中做这样的事情:
...
<script>
var userInfo = "@ViewBag.User.ToJson()"
</script>
...
我知道这行不通,但是有办法做到吗?我想避免在页面加载后只为了获取用户信息而执行 ajax 请求。
最佳答案
在 View 中你可以做这样的事情
@{
var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
var userInfoJson = jss.Serialize(ViewBag.User);
}
在 javascript 中你可以将其用作
<script>
//use Json.parse to convert string to Json
var userInfo = JSON.parse('@Html.Raw(userInfoJson)');
</script>
关于javascript - 如何使用 ViewBag 中的 JSON 填充 javascript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22667104/