我想从客户端代码中访问ViewBag数据。这是我在我的控制器中尝试过的:
ViewBag.Tasks = new JavaScriptSerializer().Serialize(tasks);
在我看来,我会把它放在一个隐藏的字段中,以便客户端可用:
<input type="hidden" name="diagramData" data-nodes="@ViewBag.Tasks" />
在我的Javascript文件中,我会搜索与所选节点相关的信息:
alert($("#diagramData").data("nodes")); //?????
警报始终显示“未定义”。这是为什么?
答案 0 :(得分:1)
这是检索元素的错误的jQuery选择器。尝试:
$('input[name="diagramData"]').data("nodes")
您在HTML中设置了name
属性,但是您尝试按id
选择它(因为#
)。属性等于选择器需要按name
选择。
或者,当然,只需将id
参数添加为“diagramData”并使用原始选择器。
参考: