快速业务通道

使用asp.net mvc再造一个digg 第一部分

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
一个URL.

ASP.NET MVC Framework在已经注册的筛选规则中寻找请求的URL所匹配的Controller.Framework把这个请求交给匹配的Controller

Controller调用Model来创建ViewData。在ViewData的创建过程中可能会多次调用model。

Model前面提到过他是一个中间层。他也许是一个数据存取模块,工作流,依赖于外部的web service等等。Model把Controller请求的数据 返回给他。.

Controller选择一个View并且把他刚从model里得到的数据发送给View。View展现这些数据,并且生成html给用户浏览。

默认约定

在下一步开发之前,我们必须先知道下面一些默认的约定。

首先,当为进来的请求匹配Controller时,framework使用类似UrlPathController 这样的模式来匹配。例如,如果请求的是 http://www.example.com/Home,那么就要使用HomeController 来处理这个请求。一旦当请求到达Controller,Controller根据子路径来执行 一个指定的行为。或者,如果路径中没有行为那么就执行默认的行为。Controller 的默认行为是在application start事件中和筛选规则定义 时一起定义的。行为在Controller类中定义为方法。例如,如果请求以下地址http://www.example.com/Home/Index,那么就会自动执行 HomeController中的Index方法。如果url中还有子路径,那么就会把子路径中每个部分转换成方法的参数。

其次,当使用Visual Studio建立ASP.NET MVC项目时,会自动建立Controllers, Models和Views这三个文件夹。推荐在对应的文件夹里创建 文件。但是,如果你在开发一个很大型的项目,那么你可以把models分离出来放在一个或多个项目中。但是Controllers 和Views必须放在MVC 项目中。对于每一个Controller,在Views下都会有名字与他想对应的文件夹。比如,如果有个名叫HomeController的Controller,那么在 Views 文件夹里就必然又一个名叫Home 的文件夹。如果多个Controller需要使用同一个view,那么这个view就必须放在views文件夹的共享目 录里。这个共享文件夹里也可以包含共享的用户控件,css文件,javascript文件等等。

kigg的相关知识和功能

在动手之前,先让我们探讨一下Digg/DotNetKicks类型程序的一些相关知识。这两个程序都是完全的社区驱动,人们在网上找到他们感兴趣 的内容,然后在程序里提交。这些内容会立刻出现在upcoming story队列中。其他用户可以对这些文章投票,一旦投票达到某个数值,他就会 出现在首页上。

程序的主要功能如下:

所有已经发布的Stories列表.

根据Stories的分类进行列表.

Upcoming Stories列表.

根据Stories的标签进行列表.

根据Stories的发布用户进行列表.

搜索Stories.

查看Story的详细内容.

允许用户提交新的Story (需要登录)

允许用户对Story 进行Kigg (投票) (需要登录)

允许用户对Story 进行评论(需要登录)

允许用户登录.

允许用户注册

允许用户重设丢失的密码.

Controllers 和 Actions的定义

Kigg的功能是和Story和用户有关的。所以我们可以把所有的功能归为以下两类:

StoryController: 处理所有Story的列表搜索提交投票等等。

UserController:处理身份验证,注册,忘记密码等等。

译注:这里的排版稍微变动了一下。把上面一句总述从列表里独立出来了。

建议使用实际的功能名称给Controller Actions命名。下面这些代码给出了StoryController里所以的行为方法:

:  1. public class StoryController 
2. {
3.   //List published stories for all category or for a specific category 
4.   [ControllerAction]
5.   public void Category(string name, int? page)
6.   {
7.   }
8.
9.   //List all upcoming stories regardless the category 
10.   [ControllerAction]
11.    public void Upcoming

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号