ASP.net MVC 同一view或页面使用多个Model或数据集的方法

 我不擅长写博客...内容尽量简单吧..仅作示例.. 

asp.net MVC中,一次默认只能返回一个Model,如果调用多个数据集,只能用ViewData来导来导去,好像很麻烦,所以,可以给model扩展方法来实现...我只是入门学习者,可能不太懂,也描述的不太清楚,如果能有更好的方法或建议..

 

首先,在控制器中定义一个类,内容如下: 

 

Code
    
public class lviewModel
    
{
        
public List<Sorts> sortList getprivate set; }
        
public List<Articles> artList getprivate set; }
        
public lviewModel(List<Models.Sorts> sortlists, List<Models.Articles> artlists)
        
{
            
this.sortList = sortlists;
            
this.artList = artlists;
        }


    }

 

以此来接收两个list,然后 返回的时候 

            Models.ESCMSContext escms = new ESCMS_MVC_SQL.Models.ESCMSContext();

            
return View(new lviewModel(escms.sortList(), escms.artList()));

 

在使用的时候

视图文件的第一行要引用 

 

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ESCMS_MVC_SQL.Controllers.lviewModel>" %>

 

ESCMS_MVC_SQL改成你项目的名称

 

然后就可以

 

 Model.artList

 Model.sortList

 

这样来用了

 

Code

 

这样就可以了..还算简单,就是之前有些绕...我觉得微软应默认提供这样的类,写起来才方便..

posted @ 2009-10-23 17:41  翼帆  阅读(4644)  评论(3编辑  收藏  举报