Я пытаюсь просмотреть Ajax и выпадающий список. Пользователь вводит почтовый индекс в текстовое поле, а затем нажимает на поиск. Отсюда я хочу, чтобы заполнить выпадающий список со значениями, исходя из базы данных, Действие в отдельном контроллере: -Ajax MVC Обновление раскрывающегося списка
public ActionResult Search(string Pcode)
{
return Json(new[] {
new { value = '1', text = "text 1" },
new { value = '2', text = "text 2" },
new { value = '3', text = "text 3" }
});
}
Мой HTML:
Pcode:- @Html.TextBox("GPPOST")
GP Practice:
@Html.EditorFor(model => model.Patient.GPSurgery)
<br/>
@Html.DropDownListFor(m =>m.Patient.GPSurgery Enumerable.Empty<SelectListItem>(),"-- Select GP --")
GP : <input type="button" id="SearchPcode" value="Search">
И, наконец, Ajax :
$(function() {
$('#SearchPcode').click(function() {
// get the new value
var value = $(this).val();
// and send it as AJAX request to the action
$.ajax({
url: '/GP_Practices/Search', //'<%= Url.Action("Search", "GP_Practices") %>',
type: 'POST',
data: { pcode: value },
success: function (result) {
// when the AJAX succeeds refresh the dropdown list with
// The JSON values returned from the controller action
var GPNames = $('#Patient.GPSurgery');
GPNames.empty();
$.each(result, function(index, item) {
alert(item.text);
});
$.each(result, function (index, item) {
GPNames.append(
$('<option/>', {
value: item.value,
text: item.text
}));
});
}
});
});
});
Когда я запускаю код я получаю Json результаты обратно, (который я могу увидеть в окне предупреждения).
Мои 2 проблемы:
1) Я не могу передать значение из текстового поля Html.TextBox («GPPOST»)
2) Выпадающий список не освежает с новыми значениями.
Вы получаете какие-либо предупреждения? – mattytommo
Привет, да, я получаю 3 предупреждения с текстом 1, текстом 2 и текстом 3 - так что вызов контроллера в порядке. Но я не могу получить раскрывающийся список для обновления или передать значение из текстового поля. – chris