欢迎一起来学习MVC 3.0,我们在一步一个脚印的做一个MVC 3.0的项目,期间会有很多值得探索的地方。将会学到Razor,Lampda,Entity Framework,Linq C#新特性等等知识,一起加油吧!
本次重点突破:
了解Linq,#region,#endregion
工具资源下载:http://download.csdn.net/detail/dhcsimida/6779357(下载过就不用重复下载了)
(1)回顾上一讲,我们已经能够通过点击首页右上角的"Store"来获得所有唱片的种类,但我们不能止步于此,还要有更多的需求,例如,我想知道某个种类下的唱片都有那些?这就是本主题要解决的。有与超链接要访问的是StoreController的Browse,那么我们就要在控制器Store中新建这个Action.如代码1.1
代码1.1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MyMusicStore.Models;
namespace MyMusicStore.Controllers
{
public class StoreController : Controller
{
private MusicStoreEntity db = new MusicStoreEntity();
public ActionResult Index()
{
var album = db.Genre.ToList();
return View(album);
}
public ActionResult Show()
{
return View();
}
#region 获取属于相应种类的所有唱片
/// <summary>
/// 获取属于相应种类的所有唱片
/// </summary>
/// <param name="genre"></param>
/// <returns></returns>
public ActionResult Browse(string genre) {
var example = db.Album.Where(g => g.Genre.Name.Equals( genre)).ToList();//
ViewBag.genre = genre;//记录唱片种类,用于在页面显示
ViewBag.count = example.Count;//记录本种类的唱片个数,用于在页面显示
return View(example);
}
#endregion 获取属于相应种类的所有唱片
}
}
(2)为其添加视图Browse.cshtml,如图2.1
图2.1
(3)编辑Browse.cshtml页面,如代码3.1
代码3.1
@model IEnumerable<MyMusicStore.Models.Album>
@{
ViewBag.Title = "Browse";
}
<h2>
有 @ViewBag.count 个 @ViewBag.genre 唱片,如下所示:</h2>
<ul>
@foreach (var album in Model)
{
<li>
@album.Title
</li>
}
</ul>
(4)执行,再次点击右上角的"Store",迁移到显示种类列表页面,如图4.1
图4.1
(5