gpt4 book ai didi

c# - 在 javascript 片段中使用 C# 列表

转载 作者:行者123 更新时间:2023-11-28 12:34:05 25 4
gpt4 key购买 nike

我想使用 C# 中的两个数组在 JS View 中的片段。为此,我尝试使用 JavaScriptSerializer()但数据数组没有获取任何值( View 的源代码显示如下):

 var mydata = 

我遇到的每个示例都通过使用 <%=%> 在 JS 中注入(inject) C# 代码标签。由于我使用的是 ASP.NET MVC 4,这对我来说不会产生任何结果。因此我尝试了以下方法:

<script type="text/javascript">
var mydata = @{ new JavaScriptSerializer().Serialize(Model.GetData());}

$(function () {
// Generates a chart using the mydata array
}
</script>

这个语法有什么问题?当我尝试为其下面的 header 添加数组时,我收到编译错误。有警告称线路未终止,但是当我添加 ; 时在每一行的末尾,它也会给出一个语法错误(没有特定错误,只是“语法错误”)。

GetData()中的数据和GetHeaders()定义如下:

public List<int> GetData() {
return new List<int>(new[] { 4, 5, 6});
}

我尝试将其作为 int[] 返回但这没有什么区别。如何在 JavaScript 代码片段中使用 C# 列表/数组?

编辑:未知编译错误的图像。当我不放置分号时,我在第二个 var 上出现语法错误。我收到一条终止行结尾的建议,这会在末尾添加分号。然后我遇到了如下所示的问题。奇怪的细节:文件一侧没有红色条通常指示错误所在的位置。

话虽这么说:执行脚本时,数组有其预期值,并且一切都按其应有的方式工作。

enter image description here

最佳答案

问题是 @{ } 创建了一个代码块,它不会将结果打印到渲染的页面上。你可以这样做:

@{ 
var serializer = new JavaScriptSerializer();
@serializer.Serialize(Model.GetData())
}

或者更好的是,使用 Json助手:

@Json.Encode(Model.GetData())

关于c# - 在 javascript 片段中使用 C# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com