Ver con más de 3 datos de tabla en MVC3

Estoy construyendo un sitio web de intranet usando MVC3. Tengo una vista en la que quiero mostrar 3 tablas. Los datos de las 3 tablas se obtienen de una sola base de datos. Tengo 3 procedimientos almacenados diferentes para 3 tablas de datos. Estoy pensando en usar 3 vistas parciales diferentes en index.cshtml. Y puede usar 3 procedimientos almacenados para obtener datos.

¿Alguien puede ayudarme a configurar el método de índice del controlador para que devuelva la vista para las 3 vistas parciales? Puedo usar viewbag. Pero leí artículos en línea y dice que no es un buen enfoque para usar viewbag. Actualmente, el método de índice en el controlador devuelve la vista solo para una vista parcial mediante el uso de 1 procedimiento almacenado.

Gracias de antemano.

preguntado el 12 de junio de 12 a las 19:06

1 Respuestas

Cree un modelo de vista personalizado.

Modelo:

public class MyViewModel 
{
    public DataSet Result1 { get; set; }
    public DataSet Result2 { get; set; }
    public DataSet Result3 { get; set; }
}

Acción del controlador:

public ViewResult myAction()
{
    var myViewModel = new MyViewModel({
         Result1 = XXX, // get result 1
         Result2 = XXX, // get result 2
         Result3 = XXX  // get result 3
    });

    return View(myViewModel);
}

Vista

@model MyViewModel;

<div id="results1">@Model.Result1.Tables[0].Rows[0]["someValueFromDB"].ToString();</div>
... etc.

Respondido el 12 de junio de 12 a las 20:06

Esto ayuda, pero estoy tratando de usar el ciclo foreach en la vista, donde dice "la instrucción foreach no puede operar en variables de tipo 'PagedList.IPagedList' porque 'PagedList.IPagedList' no contiene una definición pública para 'GetEnumerator'" - user1451999

Arreglado. Estaba usando la paginación en los datos recuperados del procedimiento almacenado. Clase de modelo de vista actualizada. clase pública MyViewModel { publicc PagedList.IPagedList resultados1 {obtener; conjunto;} //y así sucesivamente}. estaba usando PagedList solo antes Gracias !! - user1451999

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.