какой тип данных мне нужно передать от контроллера к просмотру?

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

мне нужно передать данные в мое представление.
мой 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), что означает создание классов, представляющих структуру вашей базы данных, и сопоставление результатов с ними. Конечно, это можно сделать вручную, но настоятельно рекомендуется использовать could ORM!

Для начала попробуйте LINQ to SQL или, возможно, Entity Framework, там есть множество хороших руководств.

Затем вы будете возвращать что-то типа System.Collections.Generic.List<MyTable> , с которым намного, намного проще работать.

Комментарии:

1. Я знаю, но для этого проекта мне нужно использовать базу данных mssql 2000, подключенную к веб-сайту, который будет продолжать работать. я просто разрабатываю серверную часть.