Я хочу обновить MVC Dropdownlist из метода JsonResult.Обновить MVC Dropdownlist
Вот публичный метод, который возвращает результат:
[HttpPost]
[ValidateAntiForgeryToken]
[CustomAuthorize]
public JsonResult GetHtmlApplicationSelectionList()
{
try
{
List<SelectListItem> applicationList = new List<SelectListItem>();
SelectListItem defaultApplicationValue = new SelectListItem();
defaultApplicationValue.Value = "0";
defaultApplicationValue.Text = "-- Select Application --";
defaultApplicationValue.Selected = true;
applicationList.Add(defaultApplicationValue);
foreach (var app in businessLogic.GetApplications().Select(x => new SelectListItem { Value = x.ID.ToString(), Text = x.Name }))
{
applicationList.Add(app);
}
return Json(new { result = "success", list = applicationList }, JsonRequestBehavior.AllowGet);
}
catch(Exception ex)
{
return Json(new { result = "failure", message=ex.Message}, JsonRequestBehavior.AllowGet);
}
}
А вот функция JQuery, которая вызывает метод POST, чтобы получить обновленный список приложений:
function UpdateApplicationList() {
$.ajax({
url: 'Global/GetHtmlApplicationSelectionList',
type: 'POST',
dataType: 'json',
success: function (data) {
$('.applicationSelector').html('');
$('.applicationSelector').html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
}
});
}
Как я могу заставить $ (. applicationSelector '), чтобы содержать новый список, не зацикливая список, сохраненный как JSON? Возможно ли вернуть html списка (applicationList) и просто обновить html с помощью $ ('. ApplicationSelector'). Html (data); ?
В чем проблема перебрать в списке? Вы можете вернуть HTML из своего действия, но таким образом вы увеличите трафик между клиентом и сервером. – ssimeonov
В списке нет проблем. Я думаю, что было бы проще вернуть его как html для простоты использования, а не для создания контура клиентской стороны (jQuery), чтобы каждый раз воссоздавать список. – codeg
Затем возникает вопрос, который имеет лучшую производительность: цикл на стороне клиента (js или jquery) или пытается отобразить некоторую строку html на сервере и передать ее моему