.NET MVC标准

问题描述:

我有问题有关.NET MVC,分别为标准.NET MVC标准

我做的一个信息系统,并有我的业务逻辑作为单独的项目,也是数据访问逻辑作为另一个独立的项目

我这样做是为了使进一步的修改更容易(如更改数据源,我使用的MVC实际上仅用于C#和HTML之间的通信),所以MVC项目不知道数据是如何创建的,它只是从中获得它们不同的项目

所以这个MVC项目中的模型部分是空的,不会包含任何m odels

这个aproach有效吗?或者我应该在此场景中使用MVC中的模型

+1

如果您的控制器无法看到任何模型,您将如何知道要查看的内容? – Logman 2014-11-21 13:13:32

只要该项目由您的MVC项目引用,您的模型/视图模型就可以位于另一个类库项目中。

以下职位的辩论,为什么你会选择这样做的一种方式,而不是其他的细节问题:

ViewModel Best Practices

我做的信息系统,并有我bussines逻辑作为单独的 项目和数据访问逻辑作为另一个单独项目

每个项目具有不同的响应度;完全正确。只要确保视图无法访问您的业务逻辑(以避免打破MVC模式)。

我这样做像这样做进一步modificitaion更容易 (如更改数据源的MVC我其实只使用C#和HTML之间 通信)

你不要以为在这个MVC项目中。你只是移动你的模型(M),这有业务逻辑。现在,您的“MVC项目”是一个“UI项目”,它具有控制器(C)作为通信和视图(V)的一种方式来显示数据。

所以MVC项目不知道数据如何被创建的,它只是 让他们从不同的项目

这句话应该是:“视图不知道模型什么,控制器用于与模型进行交互“。这只是MVC模式!

这个说法有效吗?或者我应该在MVC中使用模型

您的模型文件夹现在将用于存储请求和响应DTO。但是,这不是强制性的。您可以使用动态对象,ViewBag对象将数据发送到视图。或者不使用ASP.NET MVC框架视图并以Web Api的形式返回JSON对象(ASP.NET Web Api也遵循MVC模式)。

结论

当你创建一个ASP.NET MVC项目,它仅仅是一个模板,可以帮助你遵循MVC模式,但你可以通过多种方式不会破坏MVC模式改变这个模板。