Asp.net mvc 4 NET MVC 4,使用视图或布局来处理内容模板

Asp.net mvc 4 NET MVC 4,使用视图或布局来处理内容模板,asp.net-mvc-4,Asp.net Mvc 4,我长期从事ASP.NET WebForms开发。我熟悉MVC作为一种设计模式,并在许多应用程序中使用过它。我对ASP.NET MVC感到有点惊讶(和兴奋),因为我正在使用ASP.NET MVC将PoC转换为测试版 从架构上讲,我有一些内容模板,我将在网站上使用它们以不同的布局呈现内容。所有这些都是一样的,都会有图像和文本。其呈现方式取决于作者希望使用的布局(或外观) 从架构上讲,这两个场景中哪一个更适合框架 对于我想要的每个布局,我创建一个单一视图和一个单一视图控制器,VC从模型(图像/文本)中

我长期从事ASP.NET WebForms开发。我熟悉MVC作为一种设计模式,并在许多应用程序中使用过它。我对ASP.NET MVC感到有点惊讶(和兴奋),因为我正在使用ASP.NET MVC将PoC转换为测试版

从架构上讲,我有一些内容模板,我将在网站上使用它们以不同的布局呈现内容。所有这些都是一样的,都会有图像和文本。其呈现方式取决于作者希望使用的布局(或外观)

从架构上讲,这两个场景中哪一个更适合框架

对于我想要的每个布局,我创建一个单一视图和一个单一视图控制器,VC从模型(图像/文本)中获取信息并将其提供给视图。模型中的信息将取决于用户希望看到的文章。要使用不同的布局,所服务的视图将是包含该布局的不同视图,并且它将使用相同的VM和相同的模型

我创建了一个布局,该布局包含视图用来显示内容的布局。视图可以使用不同的布局来进行不同的布局。每篇文章都有自己的视图,当加载该视图时,将确定(基于作者意图)使用哪个布局作为视图的布局。可以使用多个布局


显然,两者都能胜任这项工作。我是ASP.NET MVC的新手,所以我想知道,在架构上,那些架构类似案例的人过去做了什么。

我不久前也遇到过同样的问题,发现为特定功能构建核心“基础”部分布局对我有利。如果定义基本部分,那么对于使用布局来扩展特定功能的部分,您有一个坚实的基础,此外,如果您的控制器将基本模型发送到基础布局,则扩展的部分可以在上面建立。请注意,我使用了大量AjaxBeginForm,或者在一个更大的模型中推回了更小的内容,因此所描述的可能有些过火

仅供参考,没有“视图控制器”这样的东西。它是一个控制器、一个视图、一个视图模型和一个模型。在其他语言中使用术语“视图控制器”而不是“控制器”是很常见的,比如在Objective-C中使用MVC时。我最近做了很多Objective-C工作。我想问一下,那是否真的是MVC。MVC的思想是在模型视图和控制器之间分离关注点。术语“视图控制器”很像视图模型,它是视图的控制器,但在ASP.NET MVC中并非如此,因为视图是完全独立的。一个控制器操作甚至不需要有一个视图,或者它可以从许多视图中进行选择,并且一个视图可以在许多控制器中使用。它是MVC。在MVC中,您基本上需要一个模型,一个控制器,因为这是一个UI模式,所以您绝对需要一个视图。在Obj-C中,存在相同的关注点分离。视图控制器基本上是一个“视图的控制器”,这就是我阅读命名约定的方式。它在运行时加载视图。它可以加载多个不同的视图,等等。关注点是分离的,如果需要,每个VC可以被多个视图使用,反之亦然。不,你不需要视图。您可以在MVC中进行返回void的调用,并且根本没有视图。您可以使用返回json、xml或文件的调用。。在ASP.NETMVC中,视图是一个呈现的模板,基本上就是这样。我再说一遍,ASP.NETMVC中没有“视图控制器”这样的东西。在其他一些实现中可能会用到这个术语(就像其他实现没有视图模型一样),但在ASP.NET MVC中,控制器实际上与视图无关。这不仅仅是可互换的术语,还有语义上的差异。