【发布时间】:2018-09-21 17:44:23
【问题描述】:
我正在使用带有Ajax AutoComplete 的Jquery 来返回一些数据,但我有点卡在显示文本上。
这就是我所拥有的:
<script type="text/javascript">
$(document).ready(function () {
$("#locais").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("CreateF")',
datatype: "json",
data: {
s_localidade: request.term
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.remetente,
value: item.ID,
}
}))
}
})
},
});
});
在控制器上:
public JsonResult CreateF(string s_localidade)
{
var tblOficiosExpedidos = db.tblOficiosExpedidos.Include(t => t.tblLocalidades);
var local = (from r in db.tblLocalidades
where r.Remetente.Contains(s_localidade.ToUpper())
select new { remetente = r.Remetente + " - " + r.Cidade, ID = r.LocalidadeID }).ToList();
return Json(local, JsonRequestBehavior.AllowGet);
}
在视图中:
@Html.TextBox("LocalidadeID","", htmlAttributes: new { @class = "form-control", @id="locais"})
它确实有效,但是当我选择一个项目时,文本框的文本成为我表中的键号。有没有办法当我选择某些东西时,文本保留为 item.remetente 但将 item.ID 的数量保存到表中?
【问题讨论】:
-
您需要在视图中为
ID属性设置一个单独的隐藏输入,并在自动完成select事件中设置该输入的值(例如,请参阅 this answer 跨度>
标签: c# jquery ajax asp.net-mvc-5 asp.net-ajax