2011-05-02 62 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

相關問題