C# 尝试创建没有代码隐藏页的asp.net mvc查看页

C# 尝试创建没有代码隐藏页的asp.net mvc查看页,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试在我的asp.net-mvc应用程序中创建一个查看页面。为此,我有一个强类型视图,并且我还对MVCPage类进行了ovverriden 出于某种原因,当我加载页面时,它会说它无法加载类型: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Line 2: Inherits="Blah.MyViewPage<Blah.ViewDataForBLahPage>" %&

我正在尝试在我的asp.net-mvc应用程序中创建一个查看页面。为此,我有一个强类型视图,并且我还对MVCPage类进行了ovverriden

出于某种原因,当我加载页面时,它会说它无法加载类型:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Line 2:  Inherits="Blah.MyViewPage<Blah.ViewDataForBLahPage>" %>

public class MyViewPage<TViewData> : ViewPage<TViewData> where TViewData : class 

public class ViewDataForBlahPage : MyViewData

公共类MyViewPage:ViewPage,其中TViewData:class
BlahPage的公共类ViewDataFor:MyViewData

你发布的代码让我很困惑,所以我不确定出了什么问题。但这就是我如何使我的工作(即没有代码隐藏的页面):


MyCustomViewModel
替换为您自己的视图模型类,因为您提到您的视图是强类型视图

如果它仍然不起作用,可能会发布更详细的代码&报告的错误可能会使人们更容易提供帮助…

您需要继承

System.Web.Mvc.ViewPage<Blah.ViewDataForBLahPage>
System.Web.Mvc.ViewPage

如果我记得从测试版MVC升级站点时发生过这种情况的话,我以前也遇到过这种情况。对我来说,解决办法是创建一个新的MVC项目并向其中添加或重新添加所有内容。

类的名称空间声明在哪里


埃塔:你有没有看到线程?可能是相同的错误吗?

检查您的web.config文件,尤其是
部分。您可能需要将MYBlah.Core名称空间添加到名称空间列表中。

可能是因为您的类是非泛型的,但您在此处将其作为泛型类引用:

 Inherits="MYBlah.Core.MyViewPage<MyBlah.Core.ViewDataForUser>"
Inherits=“MYBlah.Core.MyViewPage”

对于.NET,泛型类
MyViewPage
不同于
MyViewPage

如果你遵循他的等级制度,他就是这么做的。在这种情况下。。。由于无法加载类型,因此可能涉及TypeLoadException。您可以附加一个调试器,将其设置为在所有异常时都中断,并查看可能的副本的详细信息
 Inherits="MYBlah.Core.MyViewPage<MyBlah.Core.ViewDataForUser>"