MVC 4.0 -- Linq to SQL Model

下面介绍了如何从SQL 2008R2 中的数据库获取数据,并将数据通过View呈现出来:

Step 1:

  创建一个MVC4.0 的Internet App,选择 Razor作为View engine.

Step 2:

  在创建好的Project的Models文件夹上 右键-〉Add-> LINQ to SQL Classes ->命名(StudentCourseSelection)

Step 3:

  在VS的Server Explorer上连接自己的数据库,展开数据库中的Tables文件夹,将需要的表 都拖到上一步新建的LINQ to SQL class中,如:

保存此文件

Step 4:

  察看一下上一步中VS为我们自动生成的代码,会发现 已经有这样的一个类了:StudentCourseSelectionDataContext。

  接下来我们就可以使用此DbContext。

  打开位于Controlls文件夹下的HomeController.cs文件,将代码改成:

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCDemo.Models;
namespace MVCDemo.Controllers
{
    public class HomeController : Controller
    {
        //注意自己的Connectionstring
        private MVCDemo.Models.StudentCourseSelectionDataContext DbContext = new StudentCourseSelectionDataContext(@"Data Source=VS2012\ZACKZHOU;Initial Catalog=student-course;Integrated Security=True");
        
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

        public ActionResult Students() 
        {
            System.Linq.IQueryable<Student> students = from stu in DbContext.Students
                                                       select stu;
            return View(students);
        }
    }
}


Step 5 :

  右键代码中的 Students() -〉 Add View

  

在这个例子中,Model Class应该是:System.Linq.IQueryable<MVCDemo.Models.Student>。

Step 6 :

  在Views文件夹下面会生成一个Students.cshtml 文件,打开此文件并作如下修改:

@model System.Linq.IQueryable<MVCDemo.Models.Student>

@{
    ViewBag.Title = "Students";
}

<h2>Students</h2>

<ul>
    @foreach(MVCDemo.Models.Student stu in ViewData.Model){
        <li>
            @stu.Name : @stu.Age
        </li>
  }
</ul>

  注意: @model所引用的类型 必须和Controll中返回的一致,否则会出现一些奇怪的错误,如:The model item passed into the dictionary is of type     'System.Data.Linq.DataQuer' 。。。。


Step 7:

  在Views -> Shared 下的 _Layout.cshtml 的代码中添加一行,如下:

  

                        <ul id="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                            <li>@Html.ActionLink("Students","Students","Home")</li>
                        </ul>


Step 8:

  运行此程序,出现这样的结果:

Over: 希望对一些新学 MVC的朋友有些帮助。

posted @ 2012-12-07 13:06  ZackZhou  阅读(425)  评论(0编辑  收藏  举报