Nat*_*apa 0 c# asp.net-mvc jquery jquery-autocomplete asp.net-mvc-3
我有这个代码,自动完成,但显然我做错了,因为它不工作.
这是我的看法:
@Html.EditorFor(model => model.city)<br />
@Html.ValidationMessageFor(model => model.city)
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js' type="text/javascript"></script>
<script src='<%: Url.Content("~/Scripts/jQueryUI/jquery-ui-1.8.2.custom.min.js") %>'
type="text/javascript"></script>
<script type="text/javascript">
$("#city").autocomplete({
source: '<%: Url.Action("Location", "CityList") %>'
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
public class LocationController : Controller
{
private pEntities db = new pEntities();
public ActionResult CityList(string city)
{
var results = from c in db.CityCodes
where c.city.StartsWith(city)
select new { label = c.city, id = c.city_id };
return Json(results.ToArray(), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我认为你的问题是这样的:
Url.Action("Location", "CityList")
Run Code Online (Sandbox Code Playgroud)
Url.Action首先获取操作名称,然后获取控制器"名称".我发现反直觉也是如此.改为:
Url.Action("CityList", "Location")
Run Code Online (Sandbox Code Playgroud)
更新:
我查看了jQuery自动完成插件的文档,看起来你的控制器应该接受一个名为的参数term,而不是city.也许这就是你遇到的另一半问题.
public ActionResult CityList(string term)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |