首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在控制台中访问ASP.Net核心javascript变量

无法在控制台中访问ASP.Net核心javascript变量
EN

Stack Overflow用户
提问于 2020-01-16 22:51:33
回答 2查看 48关注 0票数 0

我正在尝试将d3.js图表添加到我的web应用程序中。使用新的JSON序列化程序,我将查询结果返回给视图:

代码语言:javascript
复制
public IActionResult QuotationTracker()
{
    var query =
    (from p in _context.vQuotationTracker
    orderby p.quote
    select p)
    .ToList();

    ViewBag.data = query;

    return View(query);
}

此字符串存储在Viewbag.data中,并传递到javascript变量json1中:

代码语言:javascript
复制
<script>
    var json1 = @Json.Serialize(Viewbag.data);
</script>

在DevTools中,我可以看到这是可行的:

代码语言:javascript
复制
var json1 = [{"Apple","Orange","Pear"},{"Sample1","Sample2","Sample3"}]

但是如果我尝试console.log(json1),我被告知json1是未定义的。script标签恰好位于标签之前。将辅助表达式括在单引号中也无济于事:

代码语言:javascript
复制
var json1 = '@Json.Serialize(Viewbag.data)';

我还被告知,Viewbag和Viewdata不应该用于将数据从模型传递到视图。为什么会这样呢?

EN

回答 2

Stack Overflow用户

发布于 2020-01-16 23:56:31

这条线

代码语言:javascript
复制
var json1 = [{"Apple","Orange","Pear"},["Sample1","Sample2","Sample3"]]

无效:存在语法错误。(未捕获SyntaxError:意外的标记',')。

我猜你想要这样的东西

代码语言:javascript
复制
var json1 = [["Apple","Orange","Pear"],["Sample1","Sample2","Sample3"]]. 

您的线路可能有问题

代码语言:javascript
复制
 @Json.Serialize(Viewbag.data) 
票数 0
EN

Stack Overflow用户

发布于 2020-01-17 11:30:49

在DevTools中看到这一点,我可以看到这是有效的:

var json1 ={“苹果”,“橙色”,“梨”},{"Sample1","Sample2","Sample3"}

你的json很奇怪,它应该像这样

[{"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}]

我测试了你的代码,它在我的剃刀视图中运行良好:

代码语言:javascript
复制
@section Scripts {
<script>
   
    $(document).ready(function () {
        var json1 = @Json.Serialize(ViewBag.data);
        console.log(json1);
    });        
    
</script>

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59772203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档