【发布时间】:2019-08-19 13:14:07
【问题描述】:
我正在使用一个用 C# 编写的 ASP.NET MVC 网站。我有一个自动完成的代码,它在常规视图中运行良好,但在部分视图中运行良好。在局部视图中,结果从控制器发回,数据在那里,但在局部视图中的文本框中不显示。
以下是Javascript代码:
$(document).ready(function () {
$("#SearchBox1").autocomplete({
source: function (request, response) {
//alert(request.term);
$.ajax({
url: "/MArrangement/EventDetailAutoView",
type: "POST",
dataType: "json",
async: false,
data: { Prefix: request.term },
success: function (data) {
response($.map(data, function (item) {
//alert(item.CityName);
return { label: item.CityName, value: item.CityId };
}))
}
})
},
error: function (response) {
alert('1a');
alert(response.responseText);
},
failure: function (response) {
alert('2b');
alert(response.responseText);
},
messages: {
noResults: "", results: ""
}
});
});
这是局部视图:
<div>
<label>Search by Item or Inventory Type</label><br />
@Html.EditorFor(m => m.City.CityName, new { htmlAttributes = new { id = "SearchBox1", style = "position:absolute; z-index:11" } })
</div>
这是控制器代码:
[HttpPost]
public JsonResult EventDetailAutoView(string Prefix)
{
List<Models.City> ObjList = new List<City>();
Models.Mod.InventoryMain.getInventory(ref ObjList, Guid.Parse(Session["UserID"].ToString()));
var CityList = (from N in ObjList
where N.CityName.ToLower().Contains(Prefix.ToLower())
select new { N.CityName, N.CityId }).ToList();
return Json(CityList, JsonRequestBehavior.AllowGet);
}
方法EventDetailAutoView 正在被调用并返回正确的数据。在 Javascript 代码的成功部分中,显示了数据(我放入了一条警告语句以查看数据),但结果未显示在 SearchBox1 文本框下方。以下代码在常规视图中运行良好,但在局部视图中无法正常运行。
【问题讨论】:
标签: c# asp.net-mvc autocomplete partial