使用文件夹的MVC幻灯片

本文关键字:MVC 幻灯片 文件夹 | 更新日期: 2023-09-27 18:12:02

我是全新的MVC,所以我想我会开始一个简单的项目,将显示从我的本地机器上的一系列文件夹的图像幻灯片,以帮助我学习。我正在寻求帮助,只是为了开始。

我的幻灯片内容将在我的本地机器(C:'SlideshowStuff)的文件夹中。现在我想让不同的幻灯片在主文件夹的不同文件夹中显示。(即:'SlideshowStuff'KungFu'SlideshowStuff'SciFi等)

我想有一个页面,列出所有的文件夹在C:'SlideShowStuff'文件夹,当用户点击一个,然后它要么加载幻灯片,或文件夹内的子文件夹(如'SlideshowStuff'KungFu'JetLi'Kungfu'JackieChan)最终在用户选择一个文件夹,将显示幻灯片结束。

既然我不使用数据库,我不会使用ModelController中的基础一切吗?还是使用Model从本地文件系统抓取内容并将信息传递给Controller ?实际上需要创建多少Views ?我知道至少有2个,一个用于列出主文件夹内容的起始页,另一个用于幻灯片内容。我是否需要第三个来列出子文件夹内容,或者我只是重用一个View ?

就像我说的,我刚开始用MVC,所以我道歉,如果这是太noobish。

使用文件夹的MVC幻灯片

既然我不使用数据库,我不会使用模型和基础控制器中的一切吗?

模型与数据库无关。模型是系统的业务逻辑所在的概念对象。控制器只是用户调用系统中操作的接口,它们应该依次调用模型上的业务逻辑。这个逻辑不应该在控制器中。

实际需要创建多少视图?

对于许多结构上不同的用户界面。从技术上讲,如果你愿意,你可以把所有人放在一个视图上,并使用JavaScript来显示/隐藏/操作内容。从一些简单的东西开始,我想象你会有两个视图,一个是幻灯片列表,一个是幻灯片本身。

使用MVC要记住的主要事情是如何分离组件的不同关注点。记住这句话:"让你的控制器轻一些,让你的模型重一些。"更具体地说…

  1. 视图是用户界面。因此,它们与用户界面密切相关。没有可共享逻辑,只有显示逻辑。
  2. 控制器是用户界面调用的动作。它们相关,但与接口技术(在本例中为web)没有紧密耦合。尽管它们可以很容易地紧密耦合,但在继续学习的过程中,您将了解到很多相关知识。它们实际上只是接受输入并指导业务逻辑操作以响应该输入,仅此而已。
  3. 模型是业务逻辑。如果您可以想象另一个应用程序使用另一种技术(假设是Windows窗体应用程序),那么模型就是这两个应用程序之间的共享组件。它们不应该依赖于任何UI技术,并且它们应该完全包含任何应用程序执行相同功能所需的所有逻辑。(在本例中,获取幻灯片列表,幻灯片中的图像等)

我真的建议你去看一个已经充实了ASP的教程。净MVC。看来你漏掉了一些核心概念。我没有不尊重的意思。

也就是说:

如果我理解正确的话,模型将从本地文件系统抓取内容/数据,并将其传递给特定的控制器-视图对。那么,模型决定使用哪个控制器-视图对吗?

不,它没有。URL到达路由引擎,然后选择一个要呈现的控制器。然后控制器调用它需要的任何服务方法(模型),并将最终结果传递给视图。

你正在尝试创建的项目是一个坏的方式来启动MVC,因为没有MVC的需要。您所拥有的不需要业务逻辑(M部分)。您可以简单地渲染带有图像的视图。

请记住,设计模式是为了适应特定的问题。MVC ASP。. NET,在大多数情况下,用于web应用程序。你要解决的问题是一个网页,而不是一个应用程序。这意味着你正在显示静态内容,而不是处理用户输入或其他一些输入,并根据处理后的输入显示输出。

模型不一定是域模型,它是视图的模型,您必须声明模型类,在控制器中编写逻辑以填充视图模型实例中的数据(在您的情况下从文件系统而不是数据库),然后将这些呈现给视图。这有帮助吗?还是你在找别的东西呢