Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc “错误”;视图位于'~/Views/Page/home.aspx';必须从ViewPage派生,ViewPage<;TViewData>;,ViewUserControl或ViewUserControl<;TViewData>&引用;_Asp.net Mvc_Asp.net Mvc 2_Views - Fatal编程技术网

Asp.net mvc “错误”;视图位于'~/Views/Page/home.aspx';必须从ViewPage派生,ViewPage<;TViewData>;,ViewUserControl或ViewUserControl<;TViewData>&引用;

Asp.net mvc “错误”;视图位于'~/Views/Page/home.aspx';必须从ViewPage派生,ViewPage<;TViewData>;,ViewUserControl或ViewUserControl<;TViewData>&引用;,asp.net-mvc,asp.net-mvc-2,views,Asp.net Mvc,Asp.net Mvc 2,Views,我刚刚安装了MVC2,我得到了一个如下的视图 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Home.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Home </asp:

我刚刚安装了MVC2,我得到了一个如下的视图

<%@ 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>

家
家
控制器只是返回视图。但当我运行该页面时,会出现以下错误:

System.InvalidOperationException:“~/Views/Page/home.aspx”处的视图必须派生自ViewPage、ViewPage、ViewUserControl或ViewUserControl


将MVC1.0项目升级到MVC2.0时,我遇到了这个错误。如果您正在这样做,请查看


根据新的MVC 2.0项目仔细检查web.config。

您可能无意中将两个版本的MVC框架加载到同一个应用程序中。要确认,请从下载MVC 2 Futures。此ZIP文件中有一个文件MvcDiagnostics.aspx

  • 将MvcDiagnostics.aspx复制到web项目的根目录
  • 重现错误
  • 重新生成错误后,转到/MvcDiagnostics.aspx,查看它是否对正在加载的框架的多个版本提出投诉(将以粗体红字显示)。如果是这种情况,工具应建议解决方案

  • 完成后,不要忘记从项目中删除MvcDiagnostics.aspx。

    如果您已经完成了删除/替换不需要的版本的尽职调查,那么在解决方案级别执行
    批处理->构建->clea
    n或在项目级别执行清理通常会解决这一问题来自项目引用和*.config文件的
    System.Web.Mvc

    您可以尝试使用

    最好在源代码控制下使用代码,这样您就可以看到所有更改。它更新了我不想要的javascript,所以我恢复了它,只保留了它对razor的web.config所做的更改


    请务必阅读它在上的功能和不支持的功能。

    我通过让我的自定义视图引擎直接继承RazorViewEngine解决了这个问题

    public class MainViewEngine : RazorViewEngine
    {
        public MainViewEngine()
        {...
    }}
    
    然后在Global.asax文件应用程序启动事件中注册该viewengine:

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

    显然,这是假设您正在使用Razor。

    检查引用中对System.Web.Mvc.dll文件的引用。确保其指向C:\ProgramFiles(x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblys\System.Web.MVC.dll

    如果它指向ASP.NET MVC 4目录下的目录,则在记事本中打开项目文件。寻找

    <Reference Include="System.Web.Mvc">
      <Private>False</Private>
    </Reference>
    
    
    假的
    
    这应该改为

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

    这将有助于指向特定的MVC版本

    您确定所显示的代码属于
    ~/Views/Page/home.aspx
    ?您通过提问解决了我的问题。非常感谢。我看到你继承了遗产=“System.Web.Mvc.ViewPage并使用了它,现在我可以在我的MVC5应用程序中使用reportviewer了!可能您只是忘记了更改CodeBehind文件中继承自的自动生成基类,请参见-至少这是我的问题,我偶然发现了多个问题,这些问题并不表示+1:我有相同的问题,在我的情况下,确实加载了两个不同版本的MVC2。然而,我不知道诊断方面的事情。很高兴知道。是的,这就是问题所在,我最终不得不在web项目中将MVC dll标记为“复制本地”&它解决了问题,谢谢!谢谢。它帮助我将解决方案从MVC1.0迁移到MVC4。0@LeviSystem.Web.Mvc是5.2.40版本,但问题仍然存在。@Levi I将Mvc从5.2.4升级到了5.2.7版本。。。。。没什么问题