本示例程序演示如何采用 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 技术资料和系统架构设计文档,更有很多技术专家的知识共享。

附件:
Microsoft ASP.NET MVC Preview 5 及LINQ TO SQL最新版开发示例演示(提供源码下载)MVC_Demo_EntLib.zip 548 KB, 下载 1,624 次.

相关文章:

  • 2021-07-14
  • 2021-07-15
  • 2021-09-13
  • 2021-12-03
  • 2022-01-28
猜你喜欢
  • 2022-02-16
  • 2022-02-19
  • 2021-06-18
  • 2021-11-04
  • 2021-12-01
  • 2022-02-05
相关资源
相似解决方案