2011-05-02 79 views
0

我需要将数据传递给我的视图。
我的ActionResult是这个我需要从控制器传递什么类型的数据来查看?

public ActionResult Index() 
    { 
     SiteMapData sp = new SiteMapData(); 
     ViewData["folders"] = sp.GetFolders(); 
     return View(); 
    } 

sp.GetFolders返回一个DataView

internal DataView GetFolders() 
    { 
     SqlCommand cmd = new SqlCommand("usp_PGF_Select"); 
     cmd.CommandType = CommandType.StoredProcedure; 

     SqlConnection myConnection = Util.GetConnection(); 
     cmd.Connection = myConnection; 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     DataView dView = ds.Tables[0].DefaultView; 
     return dView; 
    } 

我需要怎么走了过来在我看来,数据。
我尝试这一点,但它不是工作

@foreach (var c in (System.Data.DataView)ViewData["folders"]) 
{ 
    <p>@c.SMF_Name</p> 
} 

也许我需要通过另一种类型的数据?

回答

1

您应该做对象关系映射(ORM),这意味着创建表示您的数据库结构的类并将结果映射到这些类。当然可以手动完成,但是可以强烈建议使用ORM!

尝试使用LINQ to SQL开始,或者实体框架,那里有很多优秀的指南。

然后,您将返回一些类型为System.Collections.Generic.List<MyTable>的东西,该东西要容易得多。

+0

我知道,但对于这个项目,我需要使用连接到一个网站,将继续工作的mssql 2000分贝。我只是开发后台。 – eyalb 2011-05-02 09:00:18

相关问题