У меня есть ViewModel под названием LogViewModel, у меня есть 3 свойства, как показано ниже.
public class LogViewModel
{
public IEnumerable<Log> Logs { get; private set; }
public PaginationHelper Pagination { get; set; }
public LogFilter Filter { get; set; }
}
LogViewModel передается в Просмотр как модель. Теперь мне нужно передать LogFilter (с данными) для частичного просмотра, например:
@Html.Partial("_LogsFilter", Model.Filter)
Я пробовал много способов, но всегда получаю одну и ту же ошибку:
Элемент модели, переданный в словарь, имеет тип Infrastructure.Presentation.Desk.ViewModels.LogViewModel, но для этого словаря требуется элемент модели типа Infrastructure.Presentation.Desk.Models.LogFilter.
Любые мысли?
2 ответа
Поскольку свойство Filter
имеет значение null, структура передаст модель из родительского представления в частичное, то есть LogViewModel
, в то время как частичное представление ожидает тип LogFilter
.
Чтобы предотвратить это, убедитесь, что свойство Filter
создается до рендеринга представления, или сделайте что-нибудь вроде этого:
@Html.Partial("_LogsFilter", Model.Filter ?? new LogFilter())
В этом случае ваше частичное представление должно ожидать " LogFilter " в качестве модели. Но я думаю, что вы передаете LogFilter , а частичное представление ожидает " LogViewModel ". Исправьте несоответствие.
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
Filter
, вероятно, имеет значение null. Попробуйте что-то вроде@Html.Partial("_LogsFilter", Model.Filter ?? new LogFilter())
, конечно, еслиLogFilter
имеет конструктор по умолчанию.ModelType
вашего представления@model LogFilter
вместо@model LogViewModel
?