我想将viewbag - keyvaluepair数据传递给javascript代码。
我尝试过以下代码;
<script type="text/javascript">
@foreach (var jtcontentInfo in (List<KeyValuePair<string, string>>)ViewBag.JumpToContentInfo)
{
var someStringValue = @jtcontentInfo.Key; // It works but I cant read it from javascript.
}
</script>
最好的处理方式是什么? 任何帮助将不胜感激。
答案 0 :(得分:0)
我认为你有两个问题。
someStringValue
。也许您可以将值放入数组中:
<script type="text/javascript">
var values = [];
@foreach (var jtcontentInfo in (List<KeyValuePair<string, string>>)ViewBag.JumpToContentInfo)
{
<text>values.push('@jtcontentInfo.Key');</text>
}
</script>
答案 1 :(得分:0)
您无法直接存储到JavaScript变量中;你必须记住,该值只会被打印到HTML响应中,然后在客户端收到它并且IIS已经转移到其他任务之后,然后 JS将由浏览器处理,并且变量将被设置为该值。
因此,例如,如果@jtcontentInfo.Key
是&#34; Foo&#34;,则生成的JS将是:
var someStringValue = Foo;
哪个被解释为名为Foo
的变量而不是字符串&#34; Foo&#34;。要修复它,你只需要用引号包装它:
var someStringValue = "@jtcontentInfo.Key";