@tagHelperPrefix
Π’Π΅ΠΊΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Blazor v0.6.0 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Razor @tagHelperPrefix
ΠΠΎΠΏΡΡΠΊΠ° Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² RenderFragment ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π³Π΄Π΅ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ, ΠΈ RenderFragment ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² Panel.cshtml
ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
<div class="panel panel-default">
<div class="panel-heading">@PanelHeader</div>
<div class="panel-body">@PanelBody</div>
</div>
@functions{
[Parameter] private RenderFragment PanelHeader { get; set; }
[Parameter] private RenderFragment PanelBody { get; set; }
}
ΠΈ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² PanelHeader.cshtml
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
<div>@Title</div>
<div>@SubTitle</div>
@functions{
[Parameter] private string Title { get; set; }
[Parameter] private string SubTitle { get; set; }
}
ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
<Panel>
<PanelHeader>
<PanelHeader Title="some title" SubTitle="sub title"></PanelHeader>
</PanelHeader>
<PanelBody>Some content ...</PanelBody>
<Panel>
Π― Π±Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ @tagHelperPrefix
ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΡ RenderFragments.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Panel.cshtml
Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
<strong i="32">@tagHelperPrefix</strong> "pre1:"
<div class="panel panel-default">
<div class="panel-heading">@PanelHeader</div>
<div class="panel-body">@PanelBody</div>
</div>
@functions{
[Parameter] private RenderFragment PanelHeader { get; set; }
[Parameter] private RenderFragment PanelBody { get; set; }
}
Π PanelHeader.cshtml
Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
<strong i="37">@tagHelperPrefix</strong> "pre2:"
<div>@Title</div>
<div>@SubTitle</div>
@functions{
[Parameter] private string Title { get; set; }
[Parameter] private string SubTitle { get; set; }
}
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
<pre1:Panel>
<PanelHeader>
<pre2:PanelHeader Title="some title" SubTitle="sub title"></pre2:PanelHeader>
</PanelHeader>
<PanelBody>Some content ...</PanelBody>
<pre1:Panel>
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!
ΠΡ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ @tagHelperPrefix
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½, ΡΡΠΎ ΠΈ ΡΠΈΠΏΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° .NET. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Π΄Π»Ρ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠΏΠ°: <Namespace.MyComponent />
. ΠΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΡΡ https://github.com/aspnet/Blazor/issues/1315.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΊΠ°ΠΊ Π΅ΡΡΡ, ΠΈ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Ρ ΡΡΠΈΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΈΠΏΠ° Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
Π, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ using
Π² C #
@fayezmm ΠΠ³Π° , Ρ
ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Razor ΡΠΆΠ΅ Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° @using
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.