我正在编写简单的consoleApp(netcoreapp2.0)
<Project Sdk="Microsoft.NET.Sdk">
并希望使用mvc。
运行webserverclass Program
{
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder()
.ConfigureServices(services => services.AddMvc())
.Configure(app => app.UseDeveloperExceptionPage().UseMvcWithDefaultRoute())
.UseHttpSys().Build().Run();
}
}
public class HomeController : Controller
{
[HttpGet] public ActionResult Index() => View("Index");
}
GET http // localhost:5000
时出错缺少一个或多个编译引用。确保您的项目引用了Microsoft.NET.Sdk.Web&#39;和&#39; PreserveCompilationContext&#39; property未设置为false。
可能是Razor Engine的原因。 我怎样才能使它工作?我错过了什么?
答案 0 :(得分:3)
错误消息可能是由@using
视图文件中缺少Index.cshtml
引起的。尝试绕过索引视图,只需从控制器返回一个字符串,以查看错误消息是否消失。
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder()
.ConfigureServices(services => services.AddMvc())
.Configure(app => app.UseDeveloperExceptionPage().UseMvcWithDefaultRoute())
.UseHttpSys().Build().Run();
}
}
public class HomeController : Controller
{
[HttpGet] public string Index() => "Hello World!";
}
}
<强>的csproj 强>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Server.HttpSys" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
</ItemGroup>
</Project>
答案 1 :(得分:0)
当视图引用不再存在的模型时发生在我身上。在我的情况下,它是一个确认页面,所以不是我一直在使用的“大”视图。如果在VS中打开很多视图,错误可能会变得明显。