MVC3----使用Jquery模板异步加载数据

*首先需要安装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")" style="display:none" />
</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")" style="display:none" />
</form>

<!--模板-->
<script type="text/x-jquery-tmpl" id="personTemplate">
    <li>${Name}</li>
</script>

<!--容器-->
<div id="searchresults">
    <ul id="data-ul"></ul>
</div>

技术分享






本文出自 “程序猿的家--Hunter” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1612934

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。