В моем представлении индекса есть заполненный DropDownList идентификаторов клиентов. Я намерен динамически отображать WebGrid адресов электронной почты при выборе одного из ClientID. Используя следующий код jQuery, я успешно перехожу к действию контроллера под названием PopulateEmailAddressUI.
jQuery(document).ready(function () {
$("#MeditechDropDown").change(function () {
var id = $(this).find(":selected").val()
var clientID = { "clientID": id }
$.ajax({
url: "/Home/PopulateEmailAddressUI",
data: JSON.stringify(clientID), // Send value of the drop down change of option
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (response) {
$('#gridContent').load()
}
});
});
});
Действие моего контроллера выглядит так:
[HttpPost]
public ActionResult PopulateEmailAddressUI(string clientID)
{
_clientModel = InitialiseBarClientsModel();
_clientModel.FindEmailAddresses(from client in eFormsDB.BAR_Clients where client.ClientId == clientID select client);
return PartialView("_EmailAddressGrid", _clientModel);
}
Мое частичное представление _EmailAddressGrid выглядит так:
@model BarClients.Models.BarClientsViewModel
@{
var grid = new WebGrid(Model.EmailAddressesOfChosenClient, ajaxUpdateContainerId: "gridContent");
}
div id="gridContent"
@grid.GetHtml()
/div (arrows omitted).
Проблема, с которой я столкнулся с этим подходом, заключается в том, что WebGrid никогда не появляется. Если я смотрю на источник страницы, все, что я вижу, - это представление индекса с идентификаторами клиента, но без элемента с идентификатором div gridContent.
Что мне нужно изменить, чтобы применить свой подход, чтобы разные WebGrids могли динамически отображаться каждый раз, когда ClientID выбирается из DropDownList?
Большое спасибо.