none
Erro ao chamar Edit no MVC RRS feed

  • Pergunta

  • Bom dia.

    Estou usando MVC 3 com view engine Asp.Net, e utilizo POCO tambem.

    Tenho este metodo na minha camada de Infra:

    public Localidade retornaLocalidadePorId(int id)
            {
                var oLocalidade = (from c in _modeloContainer.Localidades
                                        where c.Id == id
                                        select c);
    
                return oLocalidade.FirstOrDefault();
            }


    Ao chamar no controller, faco assim:

     public ActionResult Edit(int id)
            {
                var localidade = _repositorio.retornaLocalidadePorId(id);
    
                return View("Edit",localidade);
            }

    Estao em camadas diferentes.

    Quando a view Edit é chamada, ocorre o erro:

    The model item passed into the dictionary is of type 'Dominio.Entidades.Localidade', but this dictionary requires a model item of type 'WebApp.Models.Localidade.Editar'.


    Alguem pode ajudar??


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
    quinta-feira, 8 de dezembro de 2011 11:59

Respostas

  • Fala Junior,

    Você não postou o código da sua View, mas ela deve estar tipada com "WebApp.Models.Localidade.Editar", mas você está passando para ela "Dominio.Entidades.Localidade".

    Troque o tipo da View, ou então o objeto que está sendo passado pra ela...

    Forte abraço

     


    Forte abraço,

    André Borges Medeiros
    MCT, MCPD, MCTS

    Procurando treinamento de ASP.NET MVC?

    >> Se a resposta solucionar sua dúvida, favor Votar como Útil
    quinta-feira, 8 de dezembro de 2011 14:34
    Moderador

Todas as Respostas

  • Fala Junior,

    Você não postou o código da sua View, mas ela deve estar tipada com "WebApp.Models.Localidade.Editar", mas você está passando para ela "Dominio.Entidades.Localidade".

    Troque o tipo da View, ou então o objeto que está sendo passado pra ela...

    Forte abraço

     


    Forte abraço,

    André Borges Medeiros
    MCT, MCPD, MCTS

    Procurando treinamento de ASP.NET MVC?

    >> Se a resposta solucionar sua dúvida, favor Votar como Útil
    quinta-feira, 8 de dezembro de 2011 14:34
    Moderador
  • Segue codigo da View

     

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Rossi.Sistemas.Expedicao.WebApp.Models.Localidade.Editar>" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
        Edit
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    
    <h2>Edit</h2>
    
    <script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
    <script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
    
    <% using (Html.BeginForm()) { %>
        <%: Html.ValidationSummary(true) %>
        <fieldset>
            <legend>Editar</legend>
    
            <%: Html.HiddenFor(model => model.Id) %>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.NomeLocalidade) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.NomeLocalidade) %>
                <%: Html.ValidationMessageFor(model => model.NomeLocalidade) %>
            </div>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.Regional) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.Regional) %>
                <%: Html.ValidationMessageFor(model => model.Regional) %>
            </div>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.Responsavel) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.Responsavel) %>
                <%: Html.ValidationMessageFor(model => model.Responsavel) %>
            </div>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.HoraLimiteEnvio) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.HoraLimiteEnvio) %>
                <%: Html.ValidationMessageFor(model => model.HoraLimiteEnvio) %>
            </div>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.PeriodicidadeId) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.PeriodicidadeId) %>
                <%: Html.ValidationMessageFor(model => model.PeriodicidadeId) %>
            </div>
    
            <div class="editor-label">
                <%: Html.LabelFor(model => model.Status) %>
            </div>
            <div class="editor-field">
                <%: Html.EditorFor(model => model.Status) %>
                <%: Html.ValidationMessageFor(model => model.Status) %>
            </div>
    
            <p>
                <input type="submit" value="Save" />
            </p>
        </fieldset>
    <% } %>
    
    <div>
        <%: Html.ActionLink("Back to List", "Index") %>
    </div>
    
    </asp:Content>
    
    



    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
    quinta-feira, 8 de dezembro de 2011 15:48
  • Perfeito...Valeu pela ajuda!!!

    Funcionou certinho!!


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
    quinta-feira, 8 de dezembro de 2011 15:52