Сообщение об ошибке: Обнаружен элемент разметки с неожиданным именем «TFilterViewModel». Если он предназначен для компонента, добавьте директиву @using для его пространства имен.
Это сообщение об ошибке не должно отображаться в списке ошибок, так как тип generi c TFilterViewModel имеет ограничение ComponentBase
, кроме того, отсутствует ошибка сборки. Сборка всегда успешна. Но VS показывает ошибку в списке ошибок и подчеркивает следующую строку красным цветом:
<TFilterViewModel ViewModel="@ViewModel" />
Просто ошибка отображения?
ViewModelFilter.razor
@using Common.Server.UI.ViewModels.Bases
@typeparam TModel
@typeparam TFilterViewModel
<h5><input type="checkbox" @bind="@FilterViewModel!.ShowFilter" disabled="@Disabled" />@Res.LabelFilter</h5>
@if (FilterViewModel.ShowFilter)
{
<TFilterViewModel ViewModel="@ViewModel" /> // Error: Found markup element with unexpected name 'TFilterViewModel' (...)
}
@code
{
#nullable disable
[Parameter] public IFilteredListViewModel<TFilterViewModel> FilterViewModel { get; set; }
[Parameter] public TModel ViewModel { get; set; }
[Parameter] public bool Disabled { get; set; }
#nullable restore
}
ViewModelFilter.razor .cs
using Microsoft.AspNetCore.Components;
namespace Common.Server.UI.Controls
{
public interface IViewModelComponentBase<TModel>
{
public TModel ViewModel { get; set; }
}
public partial class ViewModelFilter<TModel, TFilterViewModel> : ComponentBase
where TFilterViewModel : ComponentBase, IViewModelComponentBase<TModel>
{ }
}