У меня есть пользовательский элемент управления: VendorDDL.ascx со следующим кодом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<MeetingCalendar.Models.Vendor>>" %>
<table>
<tr>
<th></th>
<th>
VendorId
</th>
<th>
VendorName
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td></td>
<td>
<%= Html.Encode(item.VendorId) %>
</td>
<td>
<%= Html.Encode(item.VendorName) %>
</td>
</tr>
<% } %>
</table>
Мое представление: Create.aspx, имеет следующий фрагмент кода:
<p>
<label for="VendorNameSearch">Vendor Name:</label>
<input type="text" name="VendorNameSearch" id="VendorNameSearch" style="width:100px" />
<input type="submit" value="search" />
</p>
<% Html.RenderPartial("VendorDDL", MeetingCalendar.Controllers.HomeController.VendorsToSelect); %>
И все работает нормально, когда я загружаю представление Create. Элемент управления VendorDDL заполняется значениями по умолчанию, найденными в VendorsToSelect. У моего контроллера List<Vendor> VendorsToSelect
, который корректно обновляется.
Вот проблема: когда пользователь нажимает кнопку ПОИСК, это запускает код в контроллере: return PartialView("VendorDDL", VendorsToSelect);
Я вижу, что VendorsToSelect заполняется правильно на основе поиска пользователя.
Я могу пошагово пройти по коду и увидеть, что сразу после return PartialView("VendorDDL", VendorsToSelect);
отладчик переходит непосредственно к VendorDDL.ascx, и я вижу, что Модель правильно заполнена новым VendorsToSelect и item.VendorId и item.VendorName показывают правильные значения. Но когда отладка завершена и отображается представление «Создать», элемент управления VendorDDL не показывает новые данные.
Есть предложения?