在过去的几天里,我一直在试验和研究 Webmatrix 与 AJAX 的使用,不幸的是,我似乎无法找到足够的信息来帮助我让我的项目正常工作。我希望更多地了解这一切原则上是如何运作的,以便取得进展。希望这对其他正在学习这方面的人也有帮助。我将不胜感激任何建议和有用的链接。
(请原谅这篇文章的长度。)
关于我的项目的一点背景:
我正在使用一个 cs 类来组装几个List<int>
's 和List<double>
's,使用数据库中的数据和一些半复杂的算法。这些列表包含有关许多视频的信息,我正在使用这些列表来帮助我构建一个小视频应用程序,该应用程序最终会播放生成的带有 html5 视频和画布的视频列表。我一直在几个不同的编程环境和框架中测试这个项目(仅使用 javaScript,使用 openFrameworks 和 C++,使用带有数据库和 ajax、javaScript 等的 php)。我以前使用 ajax 没有遇到任何问题,但我在尝试在 Webmatrix 中实现这个概念时遇到了困难。
C# 数据类型、JSON 和 javaScript 之间有什么关系?
我与 php 一起使用的解决方案是这样的:
$sequenceData = array("array1" => $dataArray1,
"array2" => $dataArray2,
"array3" => $dataArray3,
"array4" => $dataArray4);
echo json_encode($sequenceData);
然后使用 AJAX 在 javaScript 中使用这些数组。我不知道这是否是一个好的解决方案,但它对我来说足够简单并且有效。
现在我一直在尝试使用 C# 数据类型找到一个很好的解决方案。(我最近几周才真正学会了 C#,所以请多多包涵。)我目前的想法是,我的数据要么是,例如,a List<Dictionary<string, string>>
,将我的数据转换为字符串,所以它们都是一样的,但是这似乎有点笨拙,这就是我想知道 JSON 如何处理这些数据类型以及 javaScript 是否(如何)识别它们的地方?或者,使用简单的类(结构?)可能更优雅,这样我就可以将数据作为一个对象传递。在这种情况下,我仍然会使用列表,所以问题仍然存在,这行得通吗?javaScript 会是 C# 对象吗?列表是否被视为数组?我使用 Google 和 Lynda.com 来获取有关 c#、json 等的更多信息,但我还没有真正完全理解这些东西是如何工作的。
Webmatrix 中的 JSON 编码
我一直主要使用两个来源来了解 JSON 帮助程序并通过 AJAX 获取编码数据:
来自microsoft.com和来自mikesdotnetting.com(指向特定文章的链接)
不幸的是,我还不能成功地从我的 cshtml 文件中传递数据。我一直在寻找有关 JSON 帮助程序的更多信息,但再次在网上找不到太多有用的信息。使用 jQuery $.ajax
(我在之前的试验中与 php 一起使用)以及$.getJSON
(在上面的链接中使用)函数,我无法成功地从 cshtml 文件中检索 JSON 数据。我认为从带有 AJAX 的 javaScript 继续的代码与我之前使用 php 创建要传递的数据时没有本质的不同,所以我想知道我在编码 JSON 数据时是否出错了。
我主要尝试了这两个概念,如在 mikesdotnetting.com 上看到的那样
var json = Json.Encode(data);
Response.Write(json);
Json.Write(data, Response.Output);
我对 php 所做的只是echo json_encode($sequenceData);
一切似乎都可以自行运行,所以我想知道我在这里是否出错了,以及 php 和 webmatrix/razor/c# 在这里的工作方式有何不同。
我希望这篇文章不会太模糊。我尝试了很多不同的代码位和方法来解决这个问题,这就是为什么我没有附加更多我正在使用的代码。我认为我需要将我的整个过程和概念更多地调整为最适合在 Webmatrix、C# 等中执行的方式,而不仅仅是“翻译”。我真的很想更多地了解这些主题(JSON 助手、与 AJAX 的通信、流程中的数据类型等),并希望人们可以分享一些建议。
(谢谢你在这篇文章的最后还和我在一起)