如何在ASP.NET Core中部署CSHTML文件

时间:2019-10-16 09:24:54

标签: asp.net-core

如何在asp.net Core中部署CSHTML文件? 如果我发布asp.net核心项目,则不会发布cshtml。 如何直接在Chrome中运行cshtml文件?

这里有一些代码可以进一步解释

我的Program.cs文件包含

公共静态无效值Main(string [] args)         {             //由于zoho在一个webhook中只能传递10个参数,因此我们将分为两个更新             //更新1             UpdateClassBoatFromZohoModel upd = new UpdateClassBoatFromZohoModel();             upd.OnGet();             //更新2             UpdateClassBoatFromZohoModel2 upd2 =新的UpdateClassBoatFromZohoModel2();             upd2.OnGet();

        //CreateWebHostBuilder(args).Build().Run();
    }

现在,这些文件中的每个UpdateClassBoatFromZoho.cshtml和UpdateClassBoatFromZoho2.cshtml将在浏览器中使用不同的querystring参数进行投放。该怎么做?

2 个答案:

答案 0 :(得分:1)

您不能这样做,因为那不是工作原理。 cshtml文件不能单独运行。它们是不被提供的,并且它们包含仅与ASP.NET Core请求管道的其余部分一起工作的预处理代码。即使您可以直接访问它们,它们也只能是文本文件(即,网络浏览器不知道如何处理)。

答案 1 :(得分:0)

页面/视图的预编译是默认行为。可以跳过此步骤并发布原始.cshtml文件,从而导致页面/视图可以以类似于经典ASP或ASP.NET Web页面框架的方式进行更新。换句话说,您可以更改.cshtml文件,然后在应用程序运行时将它们复制到Web服务器,新内容将立即生效。

如果您想采用这种方法,请将MvcCompileOnPublish节点添加到.csproj文件中,并将其值设置为false:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>

这将导致包含内容页面的Pages文件夹和包含应用程序所需的库的refs文件夹:

enter image description here