Modular Blazor Web Appを作成する方法

asp.net-core blazor c#

質問

私は現在ExtCoreを使用してモジュール式APIを構築しており、Blazor SPAアプリケーションもModularにしたいと考えています。

私は他のプロジェクトから.cshtmlファイルをインポートするコアBlazorプロジェクトを持っていますので、SPAアプリケーションのセクションごとにモジュール化されたソリューションをコーディングしています。

エクステンションを使用することはできません.netコアとBlazorは.net標準(.netコアに変更して爆発しました)というプロジェクトが必要でした。

どんな指針も大変ありがとう。

https://github.com/aspnet/Blazor

受け入れられた回答

ClassLibrary(.Net標準)を作成します。 Visual Studioでcsprojをアンロードして変更します。これはこれに似ている必要があります。

  <Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <BlazorLinkOnBuild>False</BlazorLinkOnBuild>
    <TargetFramework>netstandard2.0</TargetFramework>
    <RunCommand>dotnet</RunCommand>
    <RunArguments>blazor serve</RunArguments>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.0-preview2-30230" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.1.0" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.1.0" />
    <DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.1.0" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="Pages\**\*.cshtml" />
  </ItemGroup>

以下のようなフォルダ構造を作成します。

Pages
 |-----> _ViewImports.cshtml 
 | 
 |-----> Shared.cshtml

_ViewImports.cshtml

@using System.Net.Http
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Components
@using Microsoft.AspNetCore.Blazor.Layouts
@using Microsoft.AspNetCore.Blazor.Routing
@using MyLibrary

Shared.cshtml

@page "/shared"
<h1>This is a shared page</h1>
@functions {

}

プロジェクトを右クリックし、RebuildをクリックしてMyLibrary.dllをビルドします。この時点でバグがありますが、これはメインプロジェクトで自動コンパイルされません。

メインのWebアプリケーションを選択し、MyLibraryを依存関係に追加します。

メインWebアプリケーションの_ViewImports.cshtmlにusingディレクティブを追加します。

@addTagHelper *, MyLibrary

@using System.Net.Http
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Components
@using Microsoft.AspNetCore.Blazor.Layouts
@using Microsoft.AspNetCore.Blazor.Routing
@using WebApplication7
@using WebApplication7.Shared
@using MyLibrary.Pages

今すぐページにリンクを追加する時間

<NavLink href="/shared">
    <span class='glyphicon glyphicon-education'></span> Shared Page
</NavLink>

詳細情報Razorについて: https : //blogs.msdn.microsoft.com/webdev/2018/03/01/asp-net-core-2-1-razor-ui-in-class-libraries/

Blazorに関する問題: https : //github.com/aspnet/Blazor/issues/340



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ