如何将XML文档发送到ASP.NET MVC页面进行操作

时间:2010-03-27 23:00:45

标签: jquery asp.net-mvc xml json architecture

我根据供应商的架构在服务器上存储了一些分层数据作为多个XML文件。在我的ASP.NET MVC(2!)应用程序中,我希望用户选择其中一个层次结构(即文件 - 我在控制器的Index操作中提供了一个列表)。当用户选择一个“编辑”时,我的编辑操作应该返回一个呈现XML层次结构的页面(它是文件夹树的表示)。所以我的想法是视图将返回包含JQuery的HTML加载ajax回调到服务器以获取XML数据 - 此时我将使用众多JQuery树控件之一呈现树。在客户端,我希望用户操作树,完成后,我想回发新的层次结构,在那里我将替换代表该层次结构的原始XML文件。

所以我的问题是:

  • 我应该使用什么形式发送数据? XML还是JSON?如果我发送XML,那么我不仅要读取XML - JQuery可以做什么 - 但我还必须能够修改该XML然后将其发回。我可以使用JQuery来修改这个XML DOM吗?是否会保留所有名称空间声明?

  • 我应该以什么形式发送数据?如果我最初将客户端层次结构发送为JSON(使用JsonResult),那么我可能会有javascript对象的层次结构。我有什么选择可以发回来?我是否必须在客户端重新创建XML表示并将其发布回来?或者我应该序列化回JSON,将其发布到服务器,然后让服务器根据模式重新创建XML。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

嗯,好问题,假设我理解正确。

这个问题实际上取决于您最终使用的jQuery分层树插件以及呈现树所需的输入类型。你能列出(带链接)潜在的候选人吗?

然而,这是我的看法:

  1. “ChooseXMLToEditPage”上的下拉列表,每个下拉列表指向特定的XML file name

  2. 此页面上的提交按钮将发布到一个操作,该操作将从服务器获取XML文件,然后解析它以满足jQuery插件的输入要求,并返回包含解析数据的视图。如果您不想在HTML源代码中插入数据,可以使用AJAX获取此信息,但重要的部分是将其解析为jQuery插件的规范。

  3. 当用户完成树的编辑后,请查看jQuery插件可以使用的信息。也许它会返回XML,也许是JSON。如果它返回任何一个,那么将它们解析为正确的模式应该不会太难,在服务器端执行此操作,因为C#/ VB.NET更强大。

  4. 如果jQuery插件没有返回XML或JSON,那么,使用jQuery,获取树的原始HTML,将其发布到某些action并使用某种类型的HTML将其解析为XML图书馆(查看Html Agility Pack,或者您更喜欢使用Regular Expression to Parse HTML)。

  5. 同样,这完全依赖于jQuery插件。但最终,jQuery插件将为您提供一些类型的输出,可以解析它们以匹配您的架构。