我希望在Find
中调用以下操作CityController
。
我可以提供一个断点,看看,向客户提供的数据很精细。
选择项目时自动完成排序;它变成了空白,引发了一个奇怪的Javascript异常。
即使自动完成是ui-1.8.9.custom js文件的一部分,我仍然需要提供打击脚本。
当我选择City
时,我希望填充CityId
,以便我可以继续进行其他搜索。
<link type="text/css" href="/Content/jquery-ui-1.8.9.custom.css" rel="stylesheet" />
<script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.9.custom.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.autocomplete.js" type="text/javascript"></script>
<div class="ui-widget" style="float:right">
<label for="city">City: </label>
<%= Html.TextBox("city") %>
</div>
$("input#city").autocomplete('<%= Url.Action("Find", "City") %>', {
dataType: 'json',
parse: function(data) { alert(data.toString);
var rows = new Array();
for(var i=0; i<data.length; i++){
rows[i] = { data:data[i], value:data[i].CityName, result:data[i].CityId };
}
return rows;
},
formatItem: function(row, i, n) {
return row.CityName ;
},
width: 300,
mustMatch: true,
});
public class CityController : Controller
{
//
// GET: /City/
public ActionResult Find(string q)
{
var data = from s in DataProvider.CityNames
where s.Name.ToLower().StartsWith(q.ToLower())
select new {CityId=s.ID, CityName =s.Name};
var x = data.ToList();
return Json(x,JsonRequestBehavior.AllowGet);
}