Blazor. NET не отображает компонент. Это просто отображается как HTML разметка - PullRequest
0 голосов
/ 10 марта 2020

Недавно я столкнулся с проблемой и смог ее исправить, очистив решение. Но теперь у меня та же проблема, и очистка решения не исправляет мою ошибку. В моем проекте я использую модалы для отображения форм. Итак, я создал модальный компонент с EditForm для генерации новой сущности в моей базе данных.

<div class="modal">
    <div class="modal-body">
        <div class="row">
            <div class="col s12">
                <h5>New Item</h5>
            </div>
        </div>
        <div class="row">
            <EditForm Model="MyEntity" OnValidSubmit="OnValidSubmit" OnInvalidSubmit="OnInvalidSubmit">
                <DataAnnotationsValidator />
                <ValidationSummary></ValidationSummary>
                 <div class="input-field fixed col s12">
                     <InputText id="name" @bind-Value="MyEntity.Name" />
                     <label class="active" for="name">Name</label>
                 </div>
                <div class="col s12">
                    <button class="right btn" type="submit">Create</button>
                </div>
            </EditForm>
        </div>
    </div>
    <div class="modal-footer">
        <button class="modal-close btn-flat">Close</button>
    </div>
</div>

@code {
   [Parameter]
   public MyEntityClass MyEntity {get; set;}

   [Parameter]
   public EventCallback<Microsoft.AspNetCore.Components.Forms.EditContext> OnValidSubmit { get; set; }

   [Parameter]
   public EventCallback<Microsoft.AspNetCore.Components.Forms.EditContext> OnInvalidSubmit { get; set; }

}

На странице индекса я хотел бы использовать такой компонент:

@page "/mypage"


<MyProject.Pages.Shared.MyModalComponent MyEntity="_newMyEntity" OnValidSubmit="HandleValidSubmit" InvalidSubmit="HandleOnInvalidSubmit" />

@*
Some more HTML Code ...
*@

@code{
   private MyEntityClass _newMyEntity = new MyEntityClass();

   void HandleValidSubmit() 
   {
      // Write to Database ...
   }

   void HandleOnInvalidSubmit()
   {
      // Display Errormessage to User ...
   }
}

Blazor не отображает компонент, он просто отображает как HTML разметку с именами переменных: Result in Browser

Теперь о странной части: на другой странице я построил компонент таблицы для отображения сложных данных и там все отлично работает! Я что-то пропустил?

Я использую. NET Серверная часть Blazor Core 3.1 с Visual Studio 2019 Enterprise версии 16.4.4

1 Ответ

0 голосов
/ 16 марта 2020

Я нашел причину этого странного поведения: Visual Studio иногда не устанавливает тип действия сборки для «Содержимое» при создании нового компонента Blazor. После замены и перестройки все работает нормально.

...