none
Asp.net c# DDD - problema ao passar dados da Entidade para ViewModel RRS feed

  • Pergunta

  • Boa noite!

    Estou desenvolvendo um projeto ASP.NET MVC, com estrutura DDD e utilizando Simple Injector. Consigo realizar a persistencia no BD normalmente, porem, no momento de recuperar as informacoes e exibir em uma lista, apresenta a seguinte mensagem de erro.

    O item de modelo inserido no dicionário é do tipo'System.Collections.Generic.List`1[AntSolutions.Solen.Domain.Entities.SistemaEntities]', mas esse dicionário requer um item do tipo 'System.Collections.Generic.IEnumerable`1[AntSolutions.Solen.View.Models.SistemaViewModel]'.

    Esse e o controle que esta chamando o metodo para buscas as informacoes:

    public ActionResult Index()
    {      
        var resultado = _SistemaDominio.GetAll().AsEnumerable(); 
        return View(resultado);                 
    }


    E essa e a pagina que apresenta a lista.

    @model IEnumerable<AntSolutions.Solen.View.Models.SistemaViewModel>
    
    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>
    
    <p>
        @Html.ActionLink("Create New", "Insert")
    </p>
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.CodSistema)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Nome)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Descricao)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.DTCadastro)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Status)
            </th>
            <th></th>
        </tr>
    
    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.CodSistema)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Nome)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Descricao)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DTCadastro)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Status)
            </td>
            <td>
                @Html.ActionLink("Edit", "Update", new { id=item.IDSistema }) |
                @Html.ActionLink("Details", "Details", new { id=item.IDSistema }) |
                @Html.ActionLink("Delete", "Delete", new { id=item.IDSistema })
            </td>
        </tr>
    }
    
    </table>

    Nao estou conseguindo de forma alguma passar os dados da Entidade para a ViewModel.

    Agradeco MUITO quem conseguir me ajudar.

    Obrigado!



    domingo, 20 de agosto de 2017 22:28

Todas as Respostas

  • Já deixa ele convertido para SistemaViewModel antes de chegar na view.

    No momento em que você pega a informação do sql, já passa para a ViewModel direto, assim quando chegar na view você só passa o retorno e não precisa fazer mais nada.

    quinta-feira, 8 de agosto de 2019 17:15