Я работаю над проектом asp.net core 1.1, используя EF Core.
Начиная с текста, вставленного в текстовое поле на моей странице Create.cshtml
(где я использую функцию автозаполнения), я хочу связать другие элементы управления текстовым полем, извлекая данные из моей базы данных структуры сущностей и заполняя другие текстовые поля их значениями.
На моей Create.cshtml
ViewPage у меня есть 2 поля: CityOfBirth
и ProvinceOfBirth
.
Для простоты я пишу код только для CityOfBirth
. На моем Create.cshtml
у меня есть:
<div class="form-group">
<label asp-for="CityOfBirth" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="CityOfBirth" class="form-control" autocomplete="off" id="searchCityOfBirth"/>
<span asp-validation-for="CityOfBirth" class="text-danger"></span>
</div>
</div>
Для обоих текстовых полей я реализовал функцию автозаполнения как в Controller
:
public JsonResult AutocompleteCityOfBirth(string term)
{
var cityOfBirth = (from cOB in _listaCIcontext.Listacomuniitaliani.Where(x=>x.Comune.StartsWith(term))
select new
{ value = cOB.Comune, label = cOB.Comune }).ToList();
return Json(cityOfBirth);
}
а также в файле site.js
$(function () {
$("#searchCityOfBirth").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Criminals/AutocompleteCityOfBirth",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.term, value: item.value }
}));
},
});
},
delay: 0,
messages: {
noResults: "",
results: function (resultsCount) { }
//results: ""
},
});
});
Функция автозаполнения работает хорошо. Сейчас я пытаюсь заполнить другое текстовое поле (в моем случае ProvinceOfBirth
) на основе значения, которое я вставил в текстовое поле CityOfBirth
, получая данные из моей базы данных.
Конечно, также должно быть возможно начать с ProvinceOfBirth
и заполнить CityOfBirth
.
По этой причине я написал в своем Controller
следующий метод:
[HttpPost]
public JsonResult FillTextBoxes(string fetch)
{
var query = (from c in _listaCIcontext.Listacomuniitaliani
where c.Comune == fetch
select c).ToList();
return Json(query);
}
string fetch
содержит строку текстового поля автозаполнения, которую я хочу использовать для извлечения другого значения из базы данных. Список query
(в формате json
) содержит запрошенные значения базы данных. Как мне использовать их сейчас, чтобы заполнить текстовое поле ProvinceOfBirth
?