asp.net-mvc - 在.NET框架4.6.1控制台應用程序中,是否可以使用ASP.NET Core 2.x MVC

125 4

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>



时间: 原作者:

99 3

當你的項目targes .NET框架你應該安裝Microsoft.AspNetCore.Mvc.Razor.ViewCompilation包。

它包含啟用Razor視圖編譯所需的構建時引用。

原作者:
...