欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

本示例程序演示如何采用 Microsoft ASP.NET MVC Preview 5 和 LINQ TO SQL 开发 Web Application。

1. ASP.NET MVC 简介

ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式。它提供了一系列优秀特性,使ASP.NET开发人员拥有了另一个选择。MVC是个将一个应用的实现分成三个组件角色的框架技术:模型,视图和控制器。

在基于MVC的应用里,Model(模型)是负责保持状态的应用组件。这个状态通常都持久于数据库之中。

在基于MVC的应用里,View(视图)是负责显示用户界面的组件。这个UI通常是使用模型Model数据来创建的。

在基于MVC的应用里,Controller(控制器)是处理用户交互,操作模型Model和最终选择用哪个视图View来显示UI的组件。在MVC应用中,视图只是用来显示信息而已,是控制器来处理和回应用户的输入和交互的。

使用MVC方法的一个好处是,它有助于促进应用中模型,视图,控制器间的关注的清晰分离。保持关注的清晰分离使得对应用的测试极其容易,因为不同应用组件间的契约的定义和表达是更明确的。

2. MVC 和 LINQ TO SQL 演示程序

下面是EntLib.com 论坛小组(http://forum.EntLib.com )针对 Microsoft ASP.NET MVC 框架最新版(Preview 5) 设计的一个简单示例程序。示例程序基于EntLib.com Forum 数据库演示,可以非常方便切换到其他数据库。

如下是示例程序的运行效果界面:

3. 构建基于LINQ TO SQL 的Model

下面是示例项目源程序:

其中Model部分,采用LINQ TO SQL 创建,示例程序采用EntLib.com Forum 数据库,添加了四个表,操作界面如下:

4. 创建EntLibForumController 控制器

EntLibForumController 类首先增加一个先前创建的Model – EntLibForumDataContext,然后编写检索论坛、主题和帖子内容的方法。具体代码如下 – 采用LINQ TO Object 技术:

    public class EntLibForumController : Controller

    {

        private EntLibForumDataContext m_Forum = new EntLibForumDataContext();

        public ActionResult Index()

        {

            // Add action logic here

            throw new NotImplementedException();

        }

        public ActionResult Forums()

        {

            ViewData["Forums"] = DataContext.yaf_Forums.ToList();

            return View();

        }

        public ActionResult Topics(int id)

        {

            ViewData["Topics"] = DataContext.yaf_Topics.Where(a => a.ForumID == id).ToList();

            return View();

        }

        public ActionResult Messages(int id)

        {

            ViewData["Messages"] = DataContext.yaf_Messages.Where(a => a.TopicID == id).ToList();

            return View();

        }

        #region Properties

        private EntLibForumDataContext DataContext

        {

            get { return m_Forum; }

        }

        #endregion

    }

5. 创建UI 视图

创建UI View 比较简单,在创建UI View时,选择MVC View Content Page,Master Page 选择Shared 目录下的Site.Master 文件。

下面是Forums.aspx 页面的UI 及其代码:

    public partial class Forums : ViewPage

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            grdForum.DataSource = (List<yaf_Forum>)ViewData["Forums"];

            grdForum.DataBind();

        }

    }

欢迎访问http://forum.entlib.com 开源ASP.NET论坛,获取更多的.Net 技术资料和系统架构设计文档,更有很多技术专家的知识共享。

附件:
MVC_Demo_EntLib.zip 548 KB, 下载 1,624 次.

posted on 2009-05-30 12:52  莫问奴归处  阅读(2769)  评论(0编辑  收藏  举报
轩轩娃