gpt4 book ai didi

jquery - 关于使用 Webmatrix 和 AJAX 的基本问题

转载 作者:行者123 更新时间:2023-12-01 04:12:22 24 4
gpt4 key购买 nike

在过去的几天里,我一直在试验和研究 Webmatrix 与 AJAX 的使用,不幸的是,我似乎无法找到足够的信息来帮助我让我的项目正常工作。我希望更多地了解这一切原则上是如何运作的,以便取得进展。希望这对其他正在学习这方面的人也有帮助。我将不胜感激任何建议和有用的链接。

(请原谅这篇文章的长度。)

关于我的项目的一点背景:

我正在使用一个cs类来组装几个List<int>的和 List<double>的,使用数据库中的数据和一些半复杂的算法。这些列表包含有关许多视频的信息,我正在使用这些列表来帮助我构建一个小视频应用程序,该应用程序最终会播放生成的带有 html5 视频和 Canvas 的视频列表。
我一直在几个不同的编程环境和框架中测试这个项目(仅使用 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#,所以请多多包涵。)我目前的想法是,我的数据要么是,例如 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 的通信、流程中的数据类型等),并希望人们可以分享一些建议。

(谢谢你在这篇文章的最后还和我在一起)

最佳答案

在 C# 中,有许多预定义的原始数据类型:int、string、double、byte、datetime 等。您可以使用类来定义自己的更复杂的数据类型。示例视频数据类型声明可能如下所示:

public class Video
{
public int VideoId {get;set;}
public string Title {get;set;}
public DateTime ReleaseDate {get;set;}
}

您可以使用以下语法实例化 Video 类的实例:
Video myVideo = new Video{
VideoId = 1,
Title = "Spartacus",
ReleaseDate = new DateTime(1960, 12, 8)
};

到现在为止还挺好。您可以实例化许多视频,并将它们从编程的角度放在某种集合中。对于您使用的集合类型,您有多种选择,但通用的 List<T>常见。 T代表列表持有的类型;在这种情况下 TVideo :
List<Video> videoCollection = new List<Video>();
videoCollection.Add(myVideo);

因为声明了列表所持有的类型,所以称该列表是强类型的。数组不是强类型的。它们可以包含任何类型的对象。

在 WebMatrix(或更准确地说,是 ASP.NET 网页框架)中,Json 帮助器具有获取对象或集合并将它们序列化为 JSON 的方法。视频的每个 JSON 表示形式都将具有 VideoId、Title 和 ReleaseDate 属性:
[{"VideoId":1,"Title":"Spartacus","ReleaseDate":"\/Date(-286070400000)\/"}]

从那时起,您可以在页面文件中使用 jQuery 来处理 JSON 对象,其方式与在 PHP 中完全相同。

在您在我的网站上引用的文章中,数据是从数据库中获取的,并且在幕后有一些看不见的魔力。数据转换为 dynamic类型,在运行时由框架根据数据库获得的数据列添加属性。

关于jquery - 关于使用 Webmatrix 和 AJAX 的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776820/

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