.NET MVC实践结合jQuery(簡單易懂初學-好案例)

7 篇文章 0 订阅
7 篇文章 0 订阅

现在做web开发肯定都听说过jQuery,jQuery在ASP.NET MVC被支持的很好,而且据说vs2010中也会集成进去,所以使用ASP.NET MVC了解jQuery肯定有莫大的好处,所以这里利用几个简单的例子来讲解一下jQuery在ASP.NET MVC的中应用。  (源码示例下载)

一、jQuery的引用

对于一个新的ASP.NET MVC项目来说在它的scripts文件夹下已经包含了jQuery的js文件,所以我们在项目中直接引用就可以了,我们可以在View中输入如下代码:

<head runat="server">
<script src="<%= Url.Content("~/Scripts/jquery-1.3.2.min.js") %>"
type="text/javascript"></script>
</head>

 

这里的min版本去除了空格,注释,改写了长文件名,下载的时候所用过的时间更少。

在Vs中使用jQuery有一个比较大的好处是可以利用智能感知,jQuery的团队和微软的团队共同开发了一个js文件用于在vs中的jQuery可以智能感知,但需要在View中输入

<% /* %><script src="~/Scripts/jquery-1.3.2-vsdoc.js"></script><% */ %>

 

不过我测试这个的时候发现如果在具体的View中使用了这个引用会影响在View中代码的智能感知,但如果放在mastpage中就没什么问题了。

二、jQuery中使用Ajax方式:

1、jQuery.get(url, [data], [callback], [type])

urlString:待载入页面的URL地址

data (可选)Map:待发送 Key/value 参数,在服务器端可以用Request获得。

callback (可选)Function:载入成功时回调函数。

type (可选)String:返回内容格式,xml, html, script, json, text, _default。

我们现在要做一个对列表进行查询的ajax请求,前端视图为:

<script src="<%= Url.Content("~/Scripts/jquery-1.3.2.min.js") %>" type="text/javascript"></script>

    <%=Html.TextBox("search") %>
    <input type="button" value="查询" id="btnSearch" />
    <div id="results">
        <%Html.RenderPartial("NewsListPartial", Model); %>
    </div>

    <script language="javascript" type="text/javascript">
        $("#btnSearch").click(function() {
        $.get($(this).attr("href"), { title: $("#search").attr("value") }, function(response) {
                $("#results").html(response);
            })

        });
    </script>

 

NewsListPartial.ascx中的内容为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<News>>" %>

    <table>
        <tr>
          
            <th>
                Author
            </th>
            <th>
                Title
            </th>
            <th>
                CreateTime
            </th>
        </tr>

    <% foreach (var item in Model) { %>
    
        <tr>
      
            <td>
                <%= Html.Encode(item.Author) %>
            </td>
            <td>
                <%= Html.Encode(item.Title) %>
            </td>
            <td>
                <%= Html.Encode(String.Format("{0:g}", item.CreateTime)) %>
            </td>
        </tr>
    
    <% } %>

    </table>

 

Controller为:

public ActionResult GetDemo( string title)
         ... {
            List news=ListNews.GetList();
            if (Request.IsAjaxRequest())
            ...{
                return View("NewsListPartial",news.Where(p => p.Title.Contains(title)));
            }

            return View(news);
        }

 

我们重点来解释一下这句:

$.get($(this).attr("href"), { title: $("#search").attr("value") }, function(response) {
$("#results").html(response);
})

$(this).attr("href"):获得当前链接

{ title: $("#search").attr("value") }:调用url时传递的参数,这个参数就是TextBox的值。

function(response) {
$("#results").html(response);
}:当ajax请求完之后会调用这个函数,这个函数会将id=results的div替换成返回的文本内容。

2、jQuery.post(url, [data], [callback], [type]) 的用法和get的用法很相似

略(见源码)

3、jQuery.getJSON(url, [data], [callback]) :通过 HTTP GET 请求载入 JSON 数据。
View:

 <%=Html.TextBox("NewsId") %>
    <input type="button" id="btnGet" value="获得新闻" />
    <table>
        <tr>
            <td>
                ID:
            </td>
            <td id="ID">
            </td>
        </tr>
        <tr>
            <td>
                作者:
            </td>
            <td id="Author">
            </td>
        </tr>
        <tr>
            <td>
                标题:
            </td>
            <td id="Title">
            </td>
        </tr>
  
    </table>

    <script language="javascript" type="text/javascript">
        $("#btnGet").click(function() {
        $.getJSON($(this).attr("action"), { newsID: $("#NewsId").attr("value") }, function(news) {
                $("#ID").html(news.ID);
                $("#Author").html(news.Author);
                $("#Title").html(news.Title);
            })
        })
    </script>

 

Controller:

public ActionResult JosnDemo( string newsID)
         ... {
            if (Request.IsAjaxRequest())
            ...{
                return new JsonResult
                ...{
                    Data = ListNews.GetList().First(p => p.ID.ToString() == newsID)
                }
;
            }

            else
               return View();
        }

 

4、load(url, [data], [callback]) :载入远程 HTML 文件代码并插入至 DOM 中。

下例中当DropDownList改变时,根据DropDownList中的内容改变列表

View:

<h2>
        NewsList</h2>
    <%=Html.DropDownList("Author") %>
    <div id="results">
        <%Html.RenderPartial("NewsListPartial", Model); %>
    </div>
    <script language="javascript" type="text/javascript">

        $("#Author").change(function() {
            var selection = $("#Author").val();
            $("#results").load($(this).attr("href"), { author: selection });
        })
    </script>

 

Controller:

public ActionResult NewsList( string author)
         ... {
            
            List news=ListNews.GetList();
           if (Request.IsAjaxRequest())
            ...{
                if (!string.IsNullOrEmpty(author))
                ...{
                    news = news.Where(p => p.Author == author).ToList();
                }

                return View("NewsListPartial", news);
            }

            else
            ...{
               List<object> list = new List<object>();
                list.Add(new ...{ author = "全部", value = "" });
                list.Add(new ...{ author = "lfm1", value = "lfm1" });
                list.Add(new ...{ author = "lfm2", value = "lfm2" });
                list.Add(new ...{ author = "lfm3", value = "lfm3" });
                
                ViewData["Author"] = new SelectList(list, "value", "author");
                return View(news);
            }

        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET MVC EasyUI-Tree 是一种用于在ASP.NET MVC应用程序中实现树状结构的开源插件。它基于EasyUI框架,为开发人员提供了一种简单而强大的方式来展示和操作树形数据。 使用ASP.NET MVC EasyUI-Tree可以实现以下功能: 1. 数据展示:可以将树状数据以层级结构展示出来,帮助用户更直观地理解数据之间的关系。 2. 数据操作:可以对树状数据进行增加、编辑和删除等操作,使用户可以方便地对树节点进行维护和管理。 3. 数据筛选:可以通过设置过滤条件实现对树状数据的快速筛选,只显示符合条件的节点。 4. 数据排序:可以对树状数据进行排序,按照特定字段的升序或降序排列。 5. 数据搜索:可以通过关键字搜索来快速定位包含特定内容的节点。 6. 数据导入/导出:可以将树状数据导入到Excel等格式文件中,或者将外部数据导入到树状结构中。 7. 数据异步加载:对于大量数据,可以采用异步加载的方式实现分页加载,提升性能和用户体验。 使用ASP.NET MVC EasyUI-Tree需要进行一些配置和编写代码,但整体来说相对容易上手。它提供了丰富的API和事件以供开发人员自定义和扩展,能够满足不同需求的应用场景。 总而言之,ASP.NET MVC EasyUI-Tree是一个强大而易用的工具,能够帮助开发人员在ASP.NET MVC应用程序中轻松地实现树状结构的展示和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值