从错误和问题中寻找asp.net MVC ---Asp.net MVC 框架实例中的若干的不解的问题

    今天兴趣突发,看了下关于ASP.NET MVC的一些blog,于是便按照Scott大牛的MVC框架第一部分例子做了一番。结果发现有很多的疑问,找了下园子里的帖子,可能是我对.NET的了解实在太浅,发现虽然帖子比较多,可是大多都没有涉及到这些刚接触MVC时出现的问题,说的不是很详细,我也就大胆的做了总结,也就这个帖子的问题请教下园子的牛人们。
    首先创建一个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部分类用来完成从数据库取值等操作。这里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>

    结果生成li中的链接全部都是/products/List,



而使用ListView的时候根本没办法显示出来报错参数类型的错误。


    做到这里以后就无法继续下去了。先发到这里,希望得到大家的帮助,随着问题的解决,将继续在错误和问题中寻找下asp.net MVC的用法并最终对asp.net MVC入门。

posted @ 2008-02-26 10:39  一瞬间  阅读(862)  评论(5编辑  收藏  举报