@Html.HiddenFor(model => model.CompanyId, new { data_company_id = string.Empty })
<input type="text" name="name" id="f" data-autocomplete-source='@Url.Action("GetSearchValue", "Company")' />
В инпут я подтягиваю компанию ajaxом, а id компании записываю в @Html.HiddenFor
<script type="text/javascript">
$(function () {
$("[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
source: target.attr("data-autocomplete-source"),
select: function( event, ui ) {
$('input[data-company-id]').val(ui.item.value);
}
});
})
});
</script>
Как подставить Name после выбора, а не id <input type="text" name="name" id="f" data-autocomplete-source='@Url.Action("GetSearchValue", "Company")' />) ??
Вопрос решен. Вот так все работает как надо
public ActionResult GetSearchValue(string term)
{
var models = db.Companies.Where(x => x.Name.Contains(term))
.Select(a => new
{
value = a.Name,
Id = a.Id.ToString(),
label = a.Name
}).ToList();
return Json(models, JsonRequestBehavior.AllowGet);
}
<script type="text/javascript">
$(function () {
$("[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
select: function (event, ui) {
$('input[data-company-id]').val(ui.item.Id);
}
});
})
});
</script>
Продвижение своими сайтами как стратегия роста и независимости