【发布时间】:2018-06-13 14:56:54
【问题描述】:
我在做什么: 开发一个.NET Framework 控制台应用程序,该应用程序将自行托管一个 ASP.NET 网站(使用 Microsoft.AspNetCore.Hosting)。
我有什么:
控制台应用程序有效,它在给定的domain:port 托管网站。我已经将它配置为使用 MVC,它也可以工作,即当我转到 http://localhost:1234/Home/Index 时它会找到控制器。
问题现在,我想使用 Razor。当我添加 .cshtml 文件时,Error List 窗口中出现以下错误:
(这些不是构建错误,而是打开 .cshtml 文件时出现的错误。如果我关闭文件,错误就会消失。另外,即使出现这些错误,项目也会成功构建)
'_Page_Views_Home__ViewStart___Copy_cshtml.Execute()':找不到合适的方法来覆盖
当前上下文中不存在名称“上下文”
当前上下文中不存在名称“ViewData”
名称空间“System.Web”中不存在类型或名称空间名称“Helpers”
类型或命名空间名称“Linq”不存在于命名空间“System”中
名称空间“System.Web”中不存在类型或名称空间名称“WebPages”
名称空间“System.Web”中不存在类型或名称空间名称“WebPages”
名称空间“System.Web”中不存在类型或名称空间名称“WebPages”
有趣的是,最后一个错误是如何在同一文件、同一行中出现三次的。
Console App (.NET Framework) 和 ASP.NET Web Application(.NET Framework) 的区别我目前发现:
- 我创建了一个新的 ASP.NET Web 应用程序 (.NET Framework),它也有
.cshtml。但是没有出现上述错误。 - 我比较了这两个项目,看看有什么不同。它在项目根文件夹和
Views文件夹中有一个Web.config文件。然后我复制到相应的位置。 没有解决问题。 - 它还有 Global.asax.exe 和 Global.asax.cs 文件。但他们似乎与
.cshtml文件(或?)没有任何关系。
我的控制台应用程序项目与 ASP.NET Web 应用程序 (.NET Framework) 有何不同因为.cshtml 文件出现上述错误?
PS 不是一般的区别。但具体为什么 VS 不使用 Razor 解析 .cshtml 文件中的语法。我需要修改 .csproj 文件并在其中配置一些东西吗?
我可以做些什么来纠正这个问题?
更新
我在 .NET Framework 控制台应用程序 中安装了所有 NuGet 包,这些包默认安装在 .NET Framework ASP.NET Web 应用程序 中。我仍然收到 .cshtml 文件的错误。所以我猜它与包裹无关。
现在我将注意力放在 .csproj 文件上。所以我正在比较两种类型的项目的项目文件。显然他们有区别,但我无法指出某些事情。
我添加了带有 .csproj 文件的要点:
【问题讨论】:
-
您可以在完整的 .Net Framework 上创建一个 Asp.net Core 网站,这是一个运行 Kestrel 的控制台应用程序。这还不够吗?
-
你的 .csproj 里面有什么?
-
@KirkLarkin 我已经用 .csproj 文件添加了要点。检查问题。
标签: c# asp.net asp.net-mvc razor asp.net-core