.net - 无法让 razor 和 aspx 正常运行

标签 .net asp.net-mvc razor

我正在努力将我的 MVC 3 应用程序(我最近使用 MS 工具从 MVC 2 转换)中的一些部分 View 从 ascx 转换为 cshtml (Razor)。

简单地说:我正在尝试直接从 aspx 母版页执行 Razor 部分 View 的 Html.RenderPartial。 Razor 部分 View 中只包含“Hello World”——没有 @model 或 @inherits 或任何其他内容。当我运行我的应用程序时,此时出现以下错误:“.....cshtml 处的 View 必须派生自 ViewPage、ViewPage、ViewUserControl 或 ViewUserControl。”换句话说,它看起来像是在寻找非 Razor View 。

所以..如果我明确地将“@inherits ViewUserControl”放在我的razor部分的顶部,我会得到一个不同的错误:“...cshtml.Execute():没有找到合适的方法来覆盖。”

我从头开始创建了一个新的 MVC 3 应用程序,并以最简单的方式尝试了相同的操作。在 razor 部分上执行 RenderPartial 的 aspx 母版页。而且效果很好。但是这个庞大的现有应用程序太大了,无法从头开始。但是其中的某些东西阻止了它的工作。

这可能看起来像其他一些问题的重复,但我已经尝试了我发现的所有问题。我什至从我的机器上卸载了 MVC 2。非常欢迎建议/帮助!

谢谢...

最佳答案

尝试比较这两个项目,看看是否有任何显着差异 - 特别是 Web.config(尽管 csproj 中也可能有设置)。用于 View /页面的基本类型之类的内容存储在 web.config 中,因此它们可能设置不正确,甚至在您的原始项目中丢失。

默认的 MVC 项目在 View 文件夹的 web.config 中有类似这样的内容:

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">

<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

关于.net - 无法让 razor 和 aspx 正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398110/

相关文章:

c# - .NET 中的隐式链构造函数

c# - 如何在不使用 AutoMapper 为覆盖属性的每个派生类显式映射的情况下映射虚拟属性?

c# - 在 Razor 代码中放置 Javascript 变量

c# - 如何修复 Resharper 对象初始值设定项缩进作为方法参数

asp.net - 更改模型后重新构建 View

javascript - 使用 Javascript 将行动态添加到 html 表中

asp.net-mvc - 通用继承 ViewPage<> 和新属性

asp.net - 从经典的 ASP.NET 到 MVC 的 ASP.NET

javascript - 如何在我的 href = "Home/CompletedGrid?value = ?????"中发送数据

c# - .Net framework 3.0、3.5、2.0 在 Visual Studio 2012 中不显示,在 Windows 8.1 中仅显示 4.0 和 4.5