none
MVC 5 - Erro (Criando View) RRS feed

  • Pergunta

  • Caros Colegas,

    Estou iniciando em MVC 5, aparentemente esta tudo funcionando mas quando criei a primeira View (padrão pelo próprio VS 2013, clique direito Add View)

    Selecione as opções List, e setei direito as outras opções.

    Só que ao executar esta retornando o seguinte erro:

    must derive from WebViewPage, or WebViewPage<TModel>

    Se alguem puder me ajudar desde já agradeço, pois to batendo a cabeça o dia inteiro.

    Valeu

    segunda-feira, 20 de abril de 2015 21:51

Respostas

  • Esse erro é comum quando o web.config não está com as configurações apropriada, neste link tem um exemplo de como solucionar o problema.

    http://blogs.msdn.com/b/gaurav/archive/2014/01/15/the-view-must-derive-from-webviewpage-or-webviewpage-lt-tmodel-gt-the-view-at-views-home-index-cshtml-must-derive-from-webviewpage-or-webviewpage-lt-tmodel-gt.aspx

    Também postei meu web.config para você ter uma ideia.

    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
                      System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, 
                   Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor,
                   Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
      </configSections>
      
      <system.web.webPages.razor>
        <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages>
      </system.web.webPages.razor>
    </configuration>

    Lembrando que, sempre tem que estar com a mesma versão do Razor instalado e a mesma coisa server para a versão da webPage. Este exemplo está sendo implementado com a versão 2.0 do Razor.


    Gilson Joanelo - Desenvolvedor Web

    • Marcado como Resposta Daniel Amorin sexta-feira, 22 de janeiro de 2016 19:29
    terça-feira, 21 de abril de 2015 16:05

Todas as Respostas

  • Olá Daniel,

     bom ficaria mais simples se postasse sua Controller e sua view, mas tente inserir isso no topo de sua view :

    @inherits System.Web.Mvc.WebViewPage

     Veja nesse link outras soluções :

    WebViewPage

    segunda-feira, 20 de abril de 2015 22:03
  • Desculpa segue a Controller e a View, e eu ja tinha tentando esse site, mas não funcionou tbm.

    Se puder me ajudar agradeço. Lembrando que estou usando MySql não sei se isso afeta. Valeu

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using SeguroWeb2015.Processo.Dominio.Repositorio;

    namespace SeguroWeb2015.Processo.Web.Controllers
    {
        public class CidadesController : Controller
        {
            private CidadesRepositorio _repositorio;
            //
            // GET: /Cidades/
            public ActionResult Index()
            {
                _repositorio = new CidadesRepositorio();
                var cidades = _repositorio.Cidades.Take(10);

                return View(cidades);
            }
    }
    }

    view

    @model IEnumerable<SeguroWeb2015.Processo.Dominio.Entidades.Cidade>

    @{
        ViewBag.Title = "Index";
    }

    <h2>Index</h2>

    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Cid_Desc)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Cid_Uf)
            </th>
            <th></th>
        </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Cid_Desc)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Cid_Uf)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id=item.Cid_Cod }) |
                @Html.ActionLink("Details", "Details", new { id=item.Cid_Cod }) |
                @Html.ActionLink("Delete", "Delete", new { id=item.Cid_Cod })
            </td>
        </tr>
    }

    </table>

    terça-feira, 21 de abril de 2015 13:15
  • Esse erro é comum quando o web.config não está com as configurações apropriada, neste link tem um exemplo de como solucionar o problema.

    http://blogs.msdn.com/b/gaurav/archive/2014/01/15/the-view-must-derive-from-webviewpage-or-webviewpage-lt-tmodel-gt-the-view-at-views-home-index-cshtml-must-derive-from-webviewpage-or-webviewpage-lt-tmodel-gt.aspx

    Também postei meu web.config para você ter uma ideia.

    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
                      System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, 
                   Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor,
                   Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
      </configSections>
      
      <system.web.webPages.razor>
        <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages>
      </system.web.webPages.razor>
    </configuration>

    Lembrando que, sempre tem que estar com a mesma versão do Razor instalado e a mesma coisa server para a versão da webPage. Este exemplo está sendo implementado com a versão 2.0 do Razor.


    Gilson Joanelo - Desenvolvedor Web

    • Marcado como Resposta Daniel Amorin sexta-feira, 22 de janeiro de 2016 19:29
    terça-feira, 21 de abril de 2015 16:05
  • Boa Tarde Amigo,

    Valeu pela dica, mas já tinha visto este link. De qualquer forma consegui resolver. Atualizei tudo através do Nuget...

    E funcionou blz..

    Obrigado a todos... 

    E podendo ajudar estou a disposição.

    Abcs

    terça-feira, 21 de abril de 2015 20:59