В моем компоненте blazor .razor
у меня есть этот код ...
... stuff ...
@HistoricDeck
... stuff ...
@code
{
protected GameDataModel GameData { get; set; }
protected RenderFragment HistoricDeck { get; set; }
protected async Task LoadDeck(FriendSupportModel deck, DeckType type)
{
HistoricDeck = builder =>
{
var deckFragment = new SupportDeck() {
GameData = GameData,
AssetList = GameData.AssetList,
Deck = deck.normalDeck,
Type = DeckType.Standalone,
};
builder.OpenElement(0, "div");
builder.AddAttribute(1, "SupportDeck", deckFragment);
builder.CloseElement();
};
StateHasChanged();
}
}
LoadDeck вызывается событием @onclick=
на странице, я использую sh для динамического рендеринга нового SupportDeck () на страницу. Как мне это сделать? Приведенный ниже код не работает (например, точки останова в SupportDeck.cs html не выполняются).
SupportDeck.cs html .cs:
public class SupportDeck
{
public FriendServantListModel Deck { get; set; }
public DeckType Type { get; set; }
public GameDataModel GameData { get; set; }
public AssetList AssetList { get; set; }
}
SupportDeck. cs html:
@model Project.Views.Shared.SupportDeck
... stuff ...
@if (Model.Deck != null) {
<p>Hello world</p>
}
... stuff ...
Вот как я обычно визуализирую этот фрагмент представления на странице без Blazor:
@{
await Html.RenderPartialAsync("SupportDeck", new SupportDeck
{
Deck = Model.FriendSupport.normalDeck,
Type = DeckType.Normal,
GameData = Model.GameData,
AssetList = Model.AssetList
});
}