Array
(
)

chamar dois metodos do controller em uma views

Wallas
   - 28 jul 2012

Ola Pessoal!
Galera desde já eu queria pedir ajuda de vocês, pois eu estou tentando migrar de PHP para o ASP. net, e estou começando a estudar MVC3 e minha duvida é o seguinte.
Tenho o meu Controller
public ActionResult categorias()
{

var v_categorias = from C in tabelas.categoria
select
new tbl_categoria()
{
categoria = C.categoria1,
codigo = C.cod_categoria
};

return View(v_categorias);
}

public ActionResult Details(int id)
{

var descricao = (from P in tabelas.produtos
join C in tabelas.categoria
on P.categoria_cod_categoria equals C.cod_categoria
where P.cod_produtos == id
select
new categorias_produtos()
{
titulo = P.titulo,
valor = P.valor,
desconto = P.desconto,
imagem = P.imagem,
categoria = C.categoria1,
descricao = P.descricao,
frete = P.frete,
arquivo = P.arquivo
}).First();

return View(descricao);
}


Views
@model asp_net.Models.categorias_produtos
@{
ViewBag.Title = Details;
Layout = ~/Views/Shared/index_master.cshtml;
}
<h2>Details</h2>
<fieldset>
<legend>categorias_produtos</legend>
<div class=display-label>titulo</div>
<div class=display-field>
@Html.DisplayFor(model => model.titulo)
</div>
<div class=display-label>valor</div>
<div class=display-field>
@Html.DisplayFor(model => model.valor)
</div>
<div class=display-label>desconto</div>
<div class=display-field>
@Html.DisplayFor(model => model.desconto)
</div>
<div class=display-label>imagem</div>
<div class=display-field>
@Html.DisplayFor(model => model.imagem)
</div>
<div class=display-label>categoria</div>
<div class=display-field>
@Html.DisplayFor(model => model.categoria)
</div>
<div class=display-label>descricao</div>
<div class=display-field>
@Html.DisplayFor(model => model.descricao)
</div>
<div class=display-label>frete</div>
<div class=display-field>
@Html.DisplayFor(model => model.frete)
</div>
<div class=display-label>arquivo</div>
<div class=display-field>
@Html.DisplayFor(model => model.arquivo)
</div>
</fieldset>
<p>
@Html.ActionLink(Edit, Edit, new { /* id=Model.PrimaryKey */ }) |
@Html.ActionLink(Back to List, Index)
</p>

Estou tentando fazer uma pagina que alem de mostrar os detalhes de um produto eu queria mostra um combobox na views.
EXP.
<select name=categorias>
@foreach(var v_categoria in model)
{
<option value=@v_categoria.cod_categoria>@v_categoria.categoria</option>
}
</select>
Eu não estou conseguindo trazer para views o método categorias () e Details() ao mesmo tempo.
Existe uma maneira de executar dois métodos do controller em uma única views?
Agradeço por qualquer ajuda.

Renato_groffe
|
MVP
    31 jul 2012

Wallas,

Boa tarde.

Acredito que usando Partial Views você consiga resolver este problema.

Basicamente, você teria uma Action para cada Partial View.

Já numa View normal (que também contará com uma Action), você incluirá as duas Partial Views, usando a instrução abaixo:

#Código

@Html.Partial(CampeonatoPaulista, Model.listaTimes)


Nesse link você pode encontrar maiores detalhes:

http://www.devcurry.com/2012/04/partial-views-in-aspnet-mvc-3.html

Espero que tenha ajudado...

Wallas
   - 20 ago 2012

desculpa eu não ter respondido antes pois eu estava viajando a trabalho eu vou dar uma olhadinha valeu pela ajuda