gpt4 book ai didi

javascript - 如何从 MVC Controller 生成和传输 JavaScript 变量?

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

当页面首次加载时,我尝试使用数据库中的项目列表填充 JSON 对象。该项目列表来自数据库。现在,我已经对 View 进行了强类型化,并循环遍历项目列表以构建 HTML 无序列表,然后在 JavaScript 中根据 HTML 中的输出构建 JSON 对象。但这很笨拙。

理想情况下,我想从 Controller 中的数据库中获取数据,填充一个对象(或变量),然后将该变量发送到 JavaScript 以便在那里使用,并跳过中间的 HTML(HTML 将使用 jQuery 动态更新)。到达 JavaScript 的变量不必是 JSON 对象,但它确实需要保存我从 Controller 填充的信息。从那里,我可以在 JavaScript 中构建 JSON 对象。

一位 friend 告诉我这是可能的,他目前正在使用这种方法,但从未在 ASP.NET MVC 中尝试过。有什么想法吗?

澄清:我原本的问题应该更清楚,但我试图将变量/JSON发送到外部 javascript文件,而不是处理JSON 对象/在标签内内嵌创建它。

最佳答案

您可以将 JSON 直接分配给 [javascript] 变量,因为它是有效的 javascript。

.NET 包含一个序列化器

System.Web.Script.Serialization.JavaScriptSerializer

在你的 Controller 中,你可能有一个类似于你传入的列表的东西:

ViewData["MyData"] = new List<int>() { 1, 2, 3 };

然后你可以在 View 中解析它:

var serializer = new JavaScriptSerializer();
string data = serializer.Serialize(ViewData["MyData"]);
// data will be [1,2,3] I think
// objects with members will have data like { "MyVariable": "MyValue", ...}

您还可以在全局范围内存储一个变量,并在循环时将值推送到该变量上。

var MyData = new Array();

MyData.push(1);
MyData.push(2);
MyData.push(3);

关于javascript - 如何从 MVC Controller 生成和传输 JavaScript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1729725/

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