Asp.net mvc ASP.NETMVC为图表构建xml数据源

Asp.net mvc ASP.NETMVC为图表构建xml数据源,asp.net-mvc,xml,Asp.net Mvc,Xml,我必须构建一个xml输出,它表示视图中的flex图表的数据结构。 我有几个选择: 让控制器创建xml(使用数据库中的数据),并将其返回到实际上什么都不做的视图,因为一切都准备好了 将视图强类型化为数据库中的数据模型,并在视图中以声明方式呈现xml 创建一个Html扩展方法,该方法将包含创建xml的逻辑,并在视图中使用它 在关注点分离方面,最好的选择是什么? 在未来,我不期望xml结构会有太多的变化,也许是偶尔会发生。 我倾向于选择选项1,因为它更易于测试,而且我对控制器准备xml数据感到更舒服。

我必须构建一个xml输出,它表示视图中的flex图表的数据结构。 我有几个选择:

  • 让控制器创建xml(使用数据库中的数据),并将其返回到实际上什么都不做的视图,因为一切都准备好了

  • 将视图强类型化为数据库中的数据模型,并在视图中以声明方式呈现xml

  • 创建一个Html扩展方法,该方法将包含创建xml的逻辑,并在视图中使用它

  • 在关注点分离方面,最好的选择是什么? 在未来,我不期望xml结构会有太多的变化,也许是偶尔会发生。
    我倾向于选择选项1,因为它更易于测试,而且我对控制器准备xml数据感到更舒服。

    我选择选项1,因为我觉得它最适合MVC模式。视图不负责基于某些数据模型创建XML文件。这是业务逻辑,因此在控制器中更好


    同样重要的是,如您所说,如果您让控制器创建xml文件,您可以为其创建一个单元测试,以确认输出xml是有效的,包含所有必要的节点,等等。

    选项2是最好的。您的模型具有数据,您的控制器请求数据并将其提供给视图。视图只是有一个标记来说明它的位置。对我来说,这是分离的关注

    看到Razzie的答案,我也喜欢1,并且我认为模型必须提供某种方法将某些实体类(图表结果)序列化为xml,以便强类型视图能够使用它


    无论如何,我希望答案有帮助,基本上我认为3不是很好

    我想说这取决于你对什么更满意,因为选项1和2都是可行的。人们会说选项1很好,因为您可以使用XmlWriter来确保返回的是有效的xml,而人们会说选项2是有效的,因为mvc完全可以控制视图中呈现的内容(可以是xml)

    但是,我个人会选择选项1的一个变体,以保持功能独立于控制器,并将其作为一个独立的实用程序方法,接收数据并输出xml。这将更容易测试,但如果将来需要,也可以从代码中的其他位置调用。除此之外,它还使控制器中的代码更干净

    我同意马克的观点,我不认为选择3是个好办法


    这只是我的想法,希望能有所帮助:-)

    我倾向于同意你的看法。将逻辑编写为控制器的一部分很容易,而且是可测试的,通常我觉得它符合控制器的概念。谢谢