none
Un Partial View puede utilizar un modelo? RRS feed

  • Pregunta

  • Hola, mi situación es la siguiente: Quiero hacer una vista para mostrar noticias en mi pagina web, pero dicha vista quiero tenerla para la vista Index (para mostrar las ultimas noticias) y también para una vista solo de noticias (En donde si puedan verse todas las noticias y aplicar filtros, paginaciones, etc), quiero saber si es buena practica asignarle un modelo a un PartialView y ademas ocupo filtrar estas noticias dependiendo en donde agregue este PartialView, entonces como aplico eso a una PartialView ya que no tengo controlador. Espero haber sido claro, muchas gracias.
    jueves, 1 de octubre de 2015 23:40

Respuestas

Todas las respuestas

  • hola

    pero en el action Index como defines cuando mostrar las ultimas noticias o cuando noticias con filtros ?

    no digo que no se pueda, pero no veo que aplique un partialview, el action index devolveria un view que dependa quizas de algun parametro, cosa que la url sera

    http://sitio/noticias/ultimas

    entonces si defines en el controller

    public class noticiasController : Controller{
    
        public ActionResult Index(string param = null ){
    
              if(param != null && param= "ultimas")
                    return View("ultimas");
    
              return View("noticiasfiltro");
    
        }
    
    }

    como veras en el action defines una forma de determinar cual view devolver

    Nota: recuerda que deberas definir el MapRoute() para indicar que "param" del action mapea en la url

    igual yo pienso que esto es algo rebuscado, deberias definir dos action diferentes y no un solo index

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 2 de octubre de 2015 0:33
  • Hola Leandro! creo que no me di a entender bien, lo que busco no es poder filtrar noticias o mostrar ultimas noticias en una pagina Index, lo que busco es por ejemplo tener estas 2 rutas:

    http://sitio/Index (Tengo la pagina de inicio y un partial view con las ultimas noticias)

    http://sitio/Noticias (Tengo una pagina de solo noticias en donde les puedo aplicar filtros)

    Mi idea es simplemente que en la pagina de inicio se muestren algunas noticias y en caso de acceder a una que te dirija a la pagina de noticias completa. Sin embargo sé que podría hacerle un controlador a http://sitio/Noticias y en ese caso hacer una vista completa supongo, pero en el caso del partial view como podría indicar que solo se muestren por ejemplo las ultimas 5 noticias ?

    viernes, 2 de octubre de 2015 0:51
  • hola

    >>Tengo la pagina de inicio y un partial view con las ultimas noticias

    porque una partialview? porque directamente la view no devuelve las ultimas noticias

    >>Sin embargo sé que podría hacerle un controlador a http://sitio/Noticias y en ese caso hacer una vista completa supongo

    exacto esa es la idea

    >>pero en el caso del partial view como podría indicar que solo se muestren por ejemplo las ultimas 5 noticias ?

    eso lo limitas en los datos, si al recuperar la lista de noticias solo quieres enviar 5 lo filtras

    no se como accedes a los datos si es en un SELECT usaris el TOP 5, si es con linq usarias el Take()

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 2 de octubre de 2015 1:24
  • Ok tienes razón no haré vistas parciales, probablemente index no ocupe otro modelo. Pero para no quedarme con la duda, en caso de que ocupe enviar un Take() a una vista parcial, como lo hago si no tengo un controlador en donde llamar a la vista ? (Digo "si no tengo" porque creo que no es posible, aclárame si estoy equivocado)

    viernes, 2 de octubre de 2015 2:10
  • hola

    >>en caso de que ocupe enviar un Take() a una vista parcial, como lo hago si no tengo un controlador en donde llamar a la vista ?

    no uses el @Html.Partial(), usa el @Html.Action()

    entonces podras invoar un action de un controller, este devolver un partial que se inyecta en la view

     @Html.Partial() Vs @Html.Action() - MVC Razor

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Erick Salazar viernes, 2 de octubre de 2015 3:19
    viernes, 2 de octubre de 2015 3:05
  • Me quedó todo claro, gracias!
    viernes, 2 de octubre de 2015 3:19
  • Buenas!

    Puedes hacerlo con @Html.Partial también. 

    @Html.Partial("vista", modelo)

    Donde modelo es el objeto que le pasas a la vista parcial (habitualmente una parte del modelo que recibe la vista no parcial).

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    viernes, 2 de octubre de 2015 7:35