*首先需要安装JQuery模板(右键引用->管理NuGet程序包->搜索jquery.templates->安装)
--引用脚本
<script type="text/javascript" src="@Url.Content("~/Scripts/jQuery.tmpl.min.js")"></script>
--控制器代码:
public ActionResult QuickSearch(string term)
{
var list = db.Demos.Where(r => r.Name.Contains(term)).Select(r => r).ToList();
return Json(list, JsonRequestBehavior.AllowGet);
}
--视图代码:
①:
<script type="text/javascript">
$(function () {
//表单提交触发
$("#personsearch").submit(function (event) {
event.preventDefault(); //重要(阻止直接提交)
var form = $(this);
$.getJSON(form.attr("action"), form.serialize(), function (data) {
$("#personTemplate").tmpl(data).appendTo("#data-ul");
});
});
});
</script>
<!--表单-->
<form id="personsearch" method="get" action="@Url.Action("QuickSearch", "PersonError")">
<input type="text" name="term" />
<input type="submit" value="提交" />
<img id="img" src="@Url.Content("~/Content/img/017.gif")" />
</form>
<!--模板-->
<script type="text/x-jquery-tmpl" id="personTemplate">
<li>${Name}</li>
</script>
<!--容器-->
<div id="searchresults">
<ul id="data-ul"></ul>
</div>
②:使用ajax控制请求的过程(比如加载中显示加载动态,加载失败弹出提示框等等)
<script type="text/javascript">
$(function () {
//表单提交触发
$("#personsearch").submit(function (event) {
event.preventDefault(); //重要(阻止直接提交)
var form = $(this);
$.ajax({
url: form.attr("action"),//链接
data: form.serialize(),//数据
beforeSend: function () { $("#img").show(); },//开始请求(加载动画)
complete: function () { $("#img").hide(); },//请求完成
error: function () { alert("失败"); },//请求失败
success: function (data) {//请求成功
$("#personTemplate").tmpl(data).appendTo("#data-ul");
}
})
});
});
</script>
<!--表单-->
<form id="personsearch" method="get" action="@Url.Action("QuickSearch", "PersonError")">
<input type="text" name="term" />
<input type="submit" value="提交" />
<img id="img" src="@Url.Content("~/Content/img/017.gif")" />
</form>
<!--模板-->
<script type="text/x-jquery-tmpl" id="personTemplate">
<li>${Name}</li>
</script>
<!--容器-->
<div id="searchresults">
<ul id="data-ul"></ul>
</div>