none
partial Views MVC 3.0 RRS feed

  • Discussão Geral

  • Ola Pessoal!
    Pessoal estou estudando Partial views mas eu não estou entendendo muito minha ideia é mostrar em uma mesma views uma lista de menus e uma lista de produtos 
    Tenho no Model uma classe chamada de class_menu que tem...


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace loja_virtual.Models
    {
    public class class_menus
    {
    public string categoria{get; set;}
    public Int64 cod_categoria { get; set; }
    }
    }

    Tenho um controller chamado de HomeController

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using loja_virtual.Models;

    namespace loja_virtual.Controllers
    {



    public class HomeController : Controller
    {


    lojaEntities tabelas = new lojaEntities();



    //
    // GET: /Home/

    public ActionResult Index()
    {
    return View();
    }






    public ActionResult categorias()
    {
    var vetor_menus = from m in tabelas.categoria
    select
    new class_menus()
    {
    categoria = m.categoria1,
    cod_categoria = m.cod_categoria
    };

    return View(vetor_menus);
    }

    }


    Tenho um viwes que chama CATEGORIAS do tipo Partial (pelo Menos é o que eu acho)


    @model IEnumerable<loja_virtual.Models.class_menus>


    <table>

    @foreach (var item in Model) {
    <tr>
    <td>
    @Html.DisplayFor(modelItem => item.categoria)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.cod_categoria)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.sub_categoria)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.cod_sub_categoria)
    </td>

    </tr>
    }

    </table>


    E queria chamar essa views CATEGORIAS e PRODUTOS em uma outra views chamada de INDEX


    @{
    Layout = null;
    }

    <!DOCTYPE html>

    <html>
    <head>
    <title>Index</title>
    </head>
    <body>
    <div>

    @Html.Partial("categorias")
    @Html.Partial("produtos");
    </div>
    </body>
    </html>

    Quando vou executar da o seguinte erro na linha onte tem

    @foreach (var item in Model) {

    Referência de objeto não definida para uma instância de um objeto.


    Desde já eu agradeço ajuda de todos

    terça-feira, 28 de agosto de 2012 13:10

Todas as Respostas

  • Sua chamada esta correta! Verifique se realmente suas View são "PartialViews"

    Júnior Pacheco

    terça-feira, 28 de agosto de 2012 13:56
  •  

    Quando eu criei as views  eu marquei a opção Partial

    Tem como eu ver se realmente eu fiz certo?

    Mais eu vou dar uma olhada

    terça-feira, 28 de agosto de 2012 17:15
  • Beleza!

    Júnior Pacheco

    terça-feira, 28 de agosto de 2012 17:34
  • Junior eu estou criando as partialviews dessa forma. Estou Certo? 


    cara eu fiz um debug aqui e percebi que a variavel model do foreach esta null mas quando eu chamo a views categorias sozinha ela funciona legal, é como se ela não estive-se chamado o metodo categorias la no controller, por isso, esta null a variavel Model do

    foreach.

    quarta-feira, 29 de agosto de 2012 00:57
  • Galera eu descobri qual erá o problema!

    É que o @Html.Partial() ele não tem acesso ao Controller e eu preciso chamar um metodo no Controller então eu tenho que usar o @Html.Action()

    o @Html.Partial() geralmente e usado para Layout

    pois não precisa ter acesso ao controller mais valeu pela ajuda e fica ai a DICA se usar a camada de Controller não use @Html.Parital...

    ASP.net MVC 3.0 Razoar

    quarta-feira, 29 de agosto de 2012 03:30
  • Cara!!!! Você me ajudou demais!!! apesar do meu erro ser diferente, eu consegui resolver através da sua dúvida. Eu tenho também uma partial view, porém o model que eu chamo nela não estava sendo carregado. justamente porque eu não sabia dessa parada que o @Html.Parital não tinha acesso ao controller!!

    Valeu mesmo cara!!!

    quarta-feira, 29 de agosto de 2012 13:15
  • Por nada cara precisando estamos ai!!!
    quarta-feira, 29 de agosto de 2012 17:49
  • Isso mesmo!

    Eu faço minhas chamadas de PartialView com Jquery!


    Júnior Pacheco

    quarta-feira, 29 de agosto de 2012 19:59