2009-08-01 22 views
2

经过十年的桌面应用程序开发,我正在进入Web开发领域。我尽可能快地学习高级概念,其中之一就是MVC。我注意到javascript,css和html等东西不属于M,V或C,我没有在任何地方明确地读过它,但是我理解MVC模式只用于组织代码和数据在网站的服务器端?我很抱歉,如果这是一个奇怪的问题,请记住我是一个新手! :)对于一个网站,这是真的MVC模式只用于服务器端?

在此先感谢您的帮助!

回答

5

呈现的页面可以包含javascript,jquery和其他脚本机制。这些东西直接坐在视图中,并在客户端(在浏览器中)完成所有工作。

它的其余部分(模型和控制器)在服务器上运行。大部分视图本身都是从服务器端渲染的。

下面是一个视图的小例子,它将数据分组在一起并呈现给浏览器。

<ul> 
<% foreach (var group in Model.GroupBy(item => item.Category)) { %> 

    <li><%= Html.Encode(group.Key) %> 
    <ul> 

    <% foreach (var item in group) { %> 
     <li><%= Html.Encode(item.Data) %></li> 
    <% } %> 

    </ul> 
    </li> 

<% } %> 
</ul> 

请注意,那里没有javascript。该代码完全从服务器运行。 li和ul标签被传递给浏览器,创建一个无序的列表项列表。

输出看起来在浏览器中是这样的:

Key1 
    Data1 
    Data2 
    Data3 
Key2 
    Data4 
    Data5 

...等。

请注意,代码ALL位于服务器上,但其中一些在服务器上执行,其中一些(HTML和Javascript)传递给浏览器并在那里执行。

+0

谢谢,罗伯特!另一个问题是,服务器上有哪些东西会落入视图中? – BeachRunnerFred 2009-08-01 07:04:12

2

MVC是一种组织源代码的方式。有源代码的地方,你可以有三个。 MVC模式的任何部分都没有固有的客户端或服务器方面。

例如,最近我实现了纯JavaScript的小工具门户(如igoogle)。我有一个模型类来加载和保存json数据blob中的小配件配置,并管理这些小配件的设置。然后我有一个视图,它根据模型发出的事件自动呈现当前加载到模型中的小工具。最后,我有一个控制器在应用程序的其余部分中传递菜单点击以更新模型。这是MVC,但纯粹在JavaScript中,纯粹是客户端。

0

当使用实现MVC想法的服务器端语言时,CSS,HTML和Javascript处理视图。但是,由于Javascript与控制器的交互更多,Javascript有点混乱。

0

这不仅是组织代码和数据。关于视图:您可以对一般网页做任何事情:jQuery,JavaScript,Ajax,Knockout等。您可以将Ajax与您的服务器端(这是一个控制器)对话。 MVC的运行速度比一般的aspx web应用程序快。 理解项目/代码更好,并且需要更少的时间将代码引入团队中的新人。 最好保持一个合适的架构设计,您不必从头开始重新开发prj。

相关问题