, ViewUserControl o ViewUserControl "'/> , ViewUserControl o ViewUserControl "'/> , ViewUserControl o ViewUserControl "'/> Errore "La vista su ~ / Views / Page / home.aspx 'deve derivare da ViewPage, ViewPage <TViewData>, ViewUserControl o ViewUserControl <TViewData>" | webgamecafe.com

Domanda Errore "La vista su ~ / Views / Page / home.aspx 'deve derivare da ViewPage, ViewPage , ViewUserControl o ViewUserControl "


Ho appena installato MVC2 e ho una vista simile a questa

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Home.Master" Inherits="System.Web.Mvc.ViewPage" %>    
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home
</asp:Content>    
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">    
    <h2>Home</h2>    
</asp:Content>

E il controller sta solo restituendo la vista. Ma quando eseguo la pagina ottengo questo errore:

System.InvalidOperationException: la vista su "~ / Views / Page / home.aspx" deve derivare da ViewPage, ViewPage, ViewUserControl o ViewUserControl.


15
2018-03-18 06:03


origine


risposte:


Si potrebbe involontariamente caricare due versioni del framework MVC nella stessa applicazione. Per confermare, scaricare MVC 2 Futures da http://aspnet.codeplex.com/releases/view/41742. C'è un file MvcDiagnostics.aspx in questo file ZIP.

  1. Copia MvcDiagnostics.aspx nella root del tuo progetto web.
  2. Riproduce l'errore.
  3. Dopo aver riprodotto l'errore, andare in /MvcDiagnostics.aspx e vedere se si lamenta (sarà in grassetto in caratteri rossi) su più versioni del framework che viene caricato. Lo strumento dovrebbe suggerire una risoluzione se questo è il caso.

Non dimenticare di cancellare MvcDiagnostics.aspx dal tuo progetto quando hai finito.


20
2018-03-18 17:30



Stavo ricevendo questo errore aggiornando il mio progetto MVC 1.0 a MVC 2.0. Se lo fai, dai un'occhiata http://weblogs.asp.net/leftslipper/archive/2010/03/10/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2-rtm.aspx

Controlla il tuo web.config con un nuovo progetto MVC 2.0.


2
2018-03-18 08:46



Facendo entrambi batch->build->clean a livello di soluzione OPPURE un clean a livello di progetto di solito si prende cura di questo se hai già fatto la due diligence di rimozione / sostituzione delle versioni indesiderate di System.Web.Mvc dai riferimenti del progetto e file * .config ...


1
2018-04-06 13:54



Potresti provare a usare il ASP.NET MVC 3 Application Upgrader

Meglio farlo con il tuo codice sotto il controllo del codice sorgente, in questo modo puoi eye-ball tutto ciò che è cambiato. Aggiorna il tuo javascript che non volevo, quindi l'ho ripristinato e ho mantenuto solo le modifiche apportate a web.config per il rasoio.

Assicurati di leggere su cosa fa e su cosa non supporta questo post del blog.


0
2017-12-10 23:03



Ho risolto questo problema da solo, avendo il mio motore di visualizzazione personalizzato ereditare direttamente RazorViewEngine.

public class MainViewEngine : RazorViewEngine
{
    public MainViewEngine()
    {...
}}

Quindi registrare il viewengine nel file Global.asax Application_Start:

ViewEngines.Engines.Clear();
        ViewEngines.Engines.Add(new MainViewEngine());

Chiaramente questo presuppone che tu stia usando Razor.


0
2018-02-14 10:47



Controllare il riferimento al file System.Web.Mvc.dll come riferimento. Assicurati che indichi C: \ Programmi (x86) \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll

Se punta a quello nella directory ASP.NET MVC 4, apri il file di progetto in un blocco note. Cercare

<Reference Include="System.Web.Mvc">
  <Private>False</Private>
</Reference>

Questo dovrebbe essere cambiato in

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35, processorArchitecture=MSIL" />

Questo aiuterà a indicare la specifica versione MVC


0
2017-12-19 04:38