Aspnetcore: рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЪрд╛рдЗрд▓реНрдб рдШрдЯрдХ рдХрд╛ рдирд╛рдо рд╕рдорд╛рди рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдмрдирд╛рдПрдБ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдирд╡ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

@tagHelperPrefix рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ

рд╕рдВрдХрдЯ

Blazor v0.6.0 рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд░реЗрдЬрд░ @tagHelperPrefix рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ

рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡

рдПрдХ рдореВрд▓ рдШрдЯрдХ рдХреЗ рд░реЗрдВрдбрд░рдлреНрд░реИрдЧрдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрд╛рд▓ рдШрдЯрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛, рдЬрд╣рд╛рдВ рдмрдЪреНрдЪреЗ рдФрд░ рд░реЗрдВрдбрд░рдлреНрд░реИрдЧрдореЗрдВрдЯ рджреЛрдиреЛрдВ рдХрд╛ рдирд╛рдо рдПрдХ рд╣реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрдХрд▓рди рд╕рдордп рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред

рдорд┐рдирд┐рдорд▓ рд░рд┐рдкреНрд░реЛ рд╕реНрдЯреЗрдкреНрд╕

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 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>

рдкреНрд░рд╕реНрддрд╛рд╡

рдореИрдВ RenderFragments рд╕реЗ рдЕрд▓рдЧ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП @tagHelperPrefix рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рддрдм рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

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>

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рдо @tagHelperPrefix рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд░рд╛рджрд╛ рдШрдЯрдХреЛрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рд╡реЗ .NET рдкреНрд░рдХрд╛рд░ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ рдирд╛рдо рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдПрдХ рдШрдЯрдХ рдирд╛рдо рдХреЛ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЯрд╛рдЗрдк рдирд╛рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╕ рдирд╛рдо рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ: <Namespace.MyComponent /> ред рдпрд╣ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди https://github.com/aspnet/Blazor/issues/1315 рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЖрдкрдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдЖрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред рдпрд╣ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬреЛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдУрд╣, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж, рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдЖрдк C # рдореЗрдВ using рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

@fayezmm Yup, рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП @using рдирд┐рд░реНрджреЗрд╢ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ipinak picture ipinak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guardrex picture guardrex  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bgribaudo picture bgribaudo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ermithun picture ermithun  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Pixel-Lord picture Pixel-Lord  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ