首先创建一个asp.net MVC Web Application and Test 项目MyStore。
目录结构如图所示
添加一个MVC controller class叫ProductsController.cs
按照教程所说的一直完成Controller
public
class
ProductsController : Controller
{
NorthWindDataContext northwind = new NorthWindDataContext();
//Example Url /Products/Categories
[ControllerAction]
public void Categories()
{
//Add action logic here
List<Category> categories = northwind.GetCategories();
RenderView("Categories", categories);
}
//Example Url /Products/List/Beverages
// /Products/List/Beverages?page=2
[ControllerAction]
public void List(string Category,int? page)
{
//Add action logic here
List<Product> products = northwind.GetProductsByCategory(Category);
RenderView("ListingByCategory",products);
}
//Example Url /Products/Detail/3
[ControllerAction]
public void Detail(int id)
{
//Add action logic here
Product product = northwind.GetProductById(id);
RenderView("Detail", product);
}
}
{
NorthWindDataContext northwind = new NorthWindDataContext();
//Example Url /Products/Categories
[ControllerAction]
public void Categories()
{
//Add action logic here
List<Category> categories = northwind.GetCategories();
RenderView("Categories", categories);
}
//Example Url /Products/List/Beverages
// /Products/List/Beverages?page=2
[ControllerAction]
public void List(string Category,int? page)
{
//Add action logic here
List<Product> products = northwind.GetProductsByCategory(Category);
RenderView("ListingByCategory",products);
}
//Example Url /Products/Detail/3
[ControllerAction]
public void Detail(int id)
{
//Add action logic here
Product product = northwind.GetProductById(id);
RenderView("Detail", product);
}
}
注意:这里需要建立一个NorthwindDataContext部分类用来完成从数据库取值等操作。这里NorthwindDataContext文件名(或者说类名)必须和dbml文件里面声明的类名一致,才能得到Categories table类的引用,一开始在这里弄了很久没搞清楚为什么没办法得到Categories(即this.GetTable()方法)
接下来是单元测试
根据示例上所说建立对Detail的单元测试,可是始终没有成功。
add New test ->Unit test后,无法取得TestViewEngine这个类,以前也没使用过Unit test,VS2008中集成了对单元测试功能,可是我却找不到怎么使用这个功能。
视图阶段
显示方法1 行内方法
代码如下
<
ul
>
<% foreach (var category in ViewData){ %>
< li >
<% = Html.ActionLink(category.CategoryName, new { action = " List " ,Category = category.CategoryName} ) %>
</ li >
<% } %>
</ ul >
<% foreach (var category in ViewData){ %>
< li >
<% = Html.ActionLink(category.CategoryName, new { action = " List " ,Category = category.CategoryName} ) %>
</ li >
<% } %>
</ ul >
结果生成li中的链接全部都是/products/List,
而使用ListView的时候根本没办法显示出来报错参数类型的错误。
做到这里以后就无法继续下去了。先发到这里,希望得到大家的帮助,随着问题的解决,将继续在错误和问题中寻找下asp.net MVC的用法并最终对asp.net MVC入门。