Inquiridor
partial Views MVC 3.0

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
Todas as Respostas
-
-
-
-
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 doforeach.
- Editado Marckvaldo Wallas quarta-feira, 29 de agosto de 2012 01:33
-
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
-
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!!!
-
-