I moved a part of a view into a partial view.
_ViewImports.cshtml
@using AsonCore.Helpers
@using AsonCore.Models
@namespace AsonCore.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Application.cshtml
@page
@model ApplicationModel
<partial name="/Pages/Partial/_ApplicationPartial.cshtml" />
_ApplicationPartial.cshtml
@model ApplicationModel
<section class="content application">
<div>
<form method="post" enctype="multipart/form-data">
<div>
<label asp-for='email.Firstname'>FORNAVN</label>
<input asp-for='email.Firstname' required />
</div>
<div>
<label asp-for="email.Lastname">ETTERNAVN</label>
<input asp-for="email.Lastname" required />
</div>
<div>
<input type="submit" value="Send" />
</div>
</form>
<partial name="/Pages/Shared/_FormScript.cshtml" />
</div>
</section>
_Project.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<RootNamespace>AsonCore</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Content Remove="Pages\Partial\**" />
</ItemGroup>
<ItemGroup>
<None Include="Pages\Partial\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
</ItemGroup>
</Project>
At build the partial views are removed from the compiled views.dll to enable dynamic updates of their content, and when I did, what initially were inherited from _ViewImports.cshtml
stopped.
By adding @namespace AsonCore.Pages
to the partial view it picked up the Model
, but then I noticed, after deploying to server (it works in VS2019 though), that "TagHelpers" stopped working.
Also adding @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
to the view fixed that, but my question is, is this how it need/should be done?
Or is there any other way to prevent specific views from being compiled, where the inheritance from "ViewImports" is preserved?
CopyRefAssembliesToPublishDirectory
totrue
in the .csproj file instead of setting up rules to copy the files manually, etc. The MSBuild properties are documented here. – Orchestrion