Usuário com melhor resposta
Passar model para @Html.Partial

Pergunta
-
Olá,
tem como a partir de uma view aonde eu tenho um model, chamar um @Html.Partial e usar este model neste Partial.
@model ERP.Models.EPIGrupo @{ ViewBag.Title = "Detalhar"; } <h2>Detalhar</h2> <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.Sigla):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.Sigla, new { style = "width:250px;" })</div> </div> <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.Descricao):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.Descricao, new { style = "width:250px;" })</div> </div> @Html.Partial("_Detalhar", model)
E o partial está assim:
@model ERP.Interface.IEntidadeBase <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.EmpresaID):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.EmpresaID, new { style = "width:250px;" })</div> </div>
Abs
Marlon Tiedt
www.sesmt.com.br- Editado Marlon Tiedt quarta-feira, 27 de junho de 2012 11:27
Respostas
-
Marlon adiciona esse RenderPartial onde você queira que o codigo seja renderizado.
tipo
<div id="content">
@Html.RenderPartial(...)
</div>
Pense que o renderPartial seja um "include"
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Marco Souza quarta-feira, 27 de junho de 2012 12:16
- Marcado como Resposta Marlon Tiedt quarta-feira, 27 de junho de 2012 14:23
-
Então Marlon, você passa o model normalmente:
@{ Html.RenderPartial("_Detalhar", Model.ClasseQueImplementaIEntidadeBase); }
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Marcado como Resposta Marlon Tiedt quarta-feira, 27 de junho de 2012 14:23
Todas as Respostas
-
-
-
Marlon adiciona esse RenderPartial onde você queira que o codigo seja renderizado.
tipo
<div id="content">
@Html.RenderPartial(...)
</div>
Pense que o renderPartial seja um "include"
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Marco Souza quarta-feira, 27 de junho de 2012 12:16
- Marcado como Resposta Marlon Tiedt quarta-feira, 27 de junho de 2012 14:23
-
-
Já tentei desta maneira:
@Html.RenderPartial("_Detalhar", new ERP.Models.EPIGrupo());
E desta maneira:
@Html.Partial("_Detalhar", model)
E usei a minha partial conforme acima e retorna o erro:
Server Error in '/' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
Source Error:Line 18: </div> Line 19: Line 20: @Html.RenderPartial("_Detalhar", new ERP.Models.EPIGrupo());
Source File: j:\C#\ERP\ERP\Views\EPIGrupo\Detalhar.cshtml Line: 20
Abs
Marlon Tiedt
www.sesmt.com.br
- Editado Marlon Tiedt quarta-feira, 27 de junho de 2012 12:29
-
-
-
-
É que nas respostas acima estavam para passar assim...huahuaha...
Mas fiz assim:
@{ Html.RenderPartial("_Detalhar"); }
E no RenderPartial fiz assim:
@model ERP.Interface.IEntidadeBase <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.EmpresaID):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.EmpresaID, new { style = "width:250px;" })</div> </div> <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.DtCad):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.DtCad, new { style = "width:250px;" })</div> </div> <div class="linha"> <div class="coluna_rotulo_centro" style="width:125px">@Html.LabelFor(m => m.UsuCad):</div> <div class="coluna_rotulo_centro" style="width:250px">@Html.DisplayFor(m => m.UsuCad, new { style = "width:250px;" })</div> </div>
E funcioinou...mas ainda quero fazer funcionar como fazer funcionar para passar o model...mas não consegui...ahuahua...
Abs...Marlon Tiedt
www.sesmt.com.br -
-
Então Marlon, você passa o model normalmente:
@{ Html.RenderPartial("_Detalhar", Model.ClasseQueImplementaIEntidadeBase); }
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Marcado como Resposta Marlon Tiedt quarta-feira, 27 de junho de 2012 14:23
-
-
Sim, depois me toquei...pois ainda estou acostumado com o mundo EXE e não MVC.
O que eu quero tem que ser um propriedade da classe que estou tratando. A forma que ela vai ser tratada é outra coisa, e tem que retornar corretamente na tela.
Valeu pessoal...
Funcionou...
AbsMarlon Tiedt
www.sesmt.com.br