У меня есть два вида: частичный вид и представление, которое инкапсулирует частичный вид, используя @Html.RenderPartial("_PartialView")
. Каждый из них имеет свою собственную ViewModel:Вложенные задачи ViewModels/Partial View в MVC
public class PartialViewModel
{
// properties, etc.
}
public class MainViewModel
{
public PartialViewModel p { get; set; }
// properties, etc.
}
я получаю ошибки словаря, когда я загрузить вторую точку зрения (тот, который использует MainViewModel), так как этот вид и частичный вид инкапсулирует используют два различных ViewModels. Я не могу заставить их использовать один и тот же ViewModel, потому что частичный вид отображается во многих других разных представлениях.
Должно быть ясно, both of these views contain forms, с частичным представлением, представляющим все общие поля между формами. Учитывая это, есть ли у меня какие-либо опции или я просто пытаюсь сделать что-то, что не соответствует ограничениям MVC?
Я думаю, что это было то, чего мне не хватало - второй параметр '@ Html.RenderPartial'. Благодарю. – alex
@alex. Для получения дополнительной информации, если вы не укажете модель при использовании 'RenderPartial' по умолчанию, она будет использовать основные представления' ViewDataDictionary', чтобы она передавала 'MainViewModel' частичную, но так как частичный ожидает' PartialViewModel' вы получаете ошибки. –