Program.cs如下:
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
namespace TestApp
{
public class Program
{
static void Main(string[] args)
{
string port ="9005";
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseUrls($"http://0.0.0.0:{port}")
.Build();
host.Run();
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddRazorViewEngine()
.AddJsonFormatters();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
}
}
我在ControllersHomeController.cs中有一个控制器,看起来像这样:
using Microsoft.AspNetCore.Mvc;
namespace TestApp.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
我在ViewsHomeIndex.cshtml中有一个视图,看起来像这样:
@{
var x ="Test";
}
Home page
浏览器返回错误500并且不显示内容。
有一个叫做 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
显然可以对cshtml文件进行运行时编译,但是它有NET Core依赖项,在ASP.NET 4.x的世界中,我相信有一个ASP.NET编译器可以作为构建目标来运行,以处理此类问题,但是,尚不清楚它工作方式。
编辑:这是我的全部CSPROJ文件(我尝试了几个SDK,没有使用),
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
<OutputPath>bin$(Configuration)</OutputPath>
<DebugType>portable</DebugType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Net.Http" />
</ItemGroup>
</Project>