Мой класс ViewModel (ItemViewModel.cs) выглядит следующим образом:
открытый класс ItemViewModel
{
public ItemViewModel(xxx.Product product)
{
this.product = product;
}
private readonly xxx.xxx.Product product;
private readonly Pers pers;
private readonly Item item;
public xxx.xxx.Product Product
{
get{ return product;}
}
public Item Item
{
get { return item; }
}
public ItemList Items
{
get { return product.Items; }
}
public Pers Pers
{
get { return pers; }
set { value = pers; }
}
public PersList PersList
{
get { return product.PersList; }
}
}
В представлении определен этот код (я вынул несколько других строк регистра, просто чтобы показать одну из них в качестве примера):
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/MasterPages/Item.Master" Inherits="System.Web.Mvc.ViewPage<xxx.ViewModels.ItemViewModel>" %>
<% foreach (Pers p in Model.Perslist)
{
switch(p.DispType)
{
case DisType.Dropdown:
Model.Pers = p;
Html.RenderPartial("~/Views/Shared/Controls/Custom/PForm/DropDown.ascx",*Model);
break;
}
}
%>
И RenderPartial выглядит так:
<fieldset>
<div class="xxx">
<span class="xxx">*</span><label><%=Model.Pers.Name %></label>
<p class="xxx"><%=Model.Pers.Info %></p>
</div>
<div class="formField"><% Html.DropDownList(Model.Pers.Name, new SelectList(Model.Items[0].DropdownItems));%></div>
</fieldset>
Проблема или дилемма, с которой я столкнулся, заключается в том, что мне нужен не только p из foreach, но и весь экземпляр ItemViewModel, который первоначально был передан в мой View. Потому что мне нужно использовать Pers в этом foreach, а также иметь возможность ссылаться на Предметы. Поэтому я попытался установить для свойства Pers экземпляра класса ItemViewModel текущее значение p в foreach. Затем попытался отправить всю модель (теперь, когда у меня установлено свойство Pers для свойства), имеющего тип ItemViewModel, так что теперь я могу использовать свойство Pers для этого объекта, а также иметь возможность ссылаться на уже заполненное свойство Items. когда он попал в вид.
Итак, когда страница отображается, я получаю:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
для этой строки:
<span class="xxx">*</span><label><%=Model.Pers.Name %></label>
Пока что я безуспешен, потому что я все еще получаю ошибку нулевой ссылки на свойство Pers, когда пытаюсь использовать ITemViewModel в моем Частичном представлении.