第21章 URL和Ajax辅助器方法

一、创建基本的链接和URL

  视图最基本的任务之一是创建链接或URL,使用户能够随之进入应用程序的其他部分。

  辅助器生成的链接或URL的好处是:输出来自路由配置,当路由发生改变全自动反映在链接和URL中。

  渲染URL的HTML辅助器

描述 示例 输出
相对于应用程序的URL Url.Content("~/Content/Site.css") /Content/Site.css
链接到指定的动作控制器 Html.ActionLink("My Link", "Index", "Home") <a href="/">My Link</a>
动作URL Url.Action("GetPeople","People") /People/GetPeople
使用路由数据的URL Url.RouteUrl(new {controller = "People", action = "GetPeople"}) /People/GetPeople
使用路由数据的链接 Html.RouteLink("My Link",new{controller="People",action="GetPeople"}) <a href="/People/GetPeople">My Link</a>
链接到指定的路由 Html.RouteLink("My Link","FormRoute",new{controller="People",action="GetPeople"}) <a href="/app/forms/People/GetPeople">My Link</a>

二、MVC的渐进式Ajax

  异步JavaScript与XML: (最重要作用)后台请求服务器数据,而不必重载Web页面的一种模型。

  MVC框架的渐进式Ajax特性基于JQuery的。

 注:在真正的Internet连接上运行的实际应用程序,同步表单可能会让使用Web应用程序的用户很崩溃,会占用服务器的大量带宽和处理能力。

    第一步:在web.config中启用渐进式Ajax特性

      <appSettings>
        <add key="webpages:Enabled" value="false" />
        <add key="UnobtrusiveJavascriptEnable" value="true"/>
      </appSettings>

   第二步:模板页中头部引用JQuery库(min版本)和 jquery.unobtrusive-ajax库(min版本)      <script src="~/Scripts/jquery-1.7.1.js"></script>           <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
   第三步:修改初始请求方法,新增控制器中动作方法(用于ajax)和分部视图
 public ActionResult GetPeople(string selectedRole = "All")
        {
            return View((object)selectedRole);
        }
@using HelperMethods.Models
@model string
@{
    ViewBag.Title = "GetPeople";
    AjaxOptions ajaxOpts = new AjaxOptions
    {
        UpdateTargetId = "tableBody"
    };
}

<h2>Get People</h2>
<table>
    <thead>
    <tr>
        <th>Name</th>
        <th>Role</th>
    </tr>
    </thead>
    <tbody id="tableBody">
        @Html.Action("GetPeopleData",new{selectedRole=Model})
    </tbody>
</table>

@using (Ajax.BeginForm("GetPeopleData",ajaxOpts))
{
    <div>
        @Html.DropDownList("selectedRole", new SelectList(
       new[] { "All"}.Concat(Enum.GetNames(typeof(Role)))))
        <button type="submit">查询</button>
    </div>
}
       public PartialViewResult GetPeopleData(string selectedRole = "All")
        {
            IEnumerable<Person> data = personData;
            if (selectedRole != "All")
            {
                Role selected = (Role) Enum.Parse(typeof (Role), selectedRole);
                data = personData.Where(p => p.Role == selected);
            }
            return PartialView(data);
        }
@using HelperMethods.Models
@model IEnumerable<Person>

@foreach (Person p in Model)
{
    <tr>
        <td>@p.Name</td>
        <td>@p.Role</td>
    </tr>
}

AjaxOptions属性

属性 描述
Confirm 在形成Ajax请求前,设置显示给用户的确认窗口信息
HttpMethod 设置用来形成请求的HTTP方法(Get 或 Post)
InsertionMode 指定从服务器接受的内容以何种方式插入到HTML。枚举:InsertAfter、InsertBefore、Replace(默认)
LoadingElementId 指定HTML元素的ID,这是执行Ajax请求期间要显示的HTML元素
LoadingElementDuration 指定动画的持续时间,用于显示由LoadingElementId指定的元素
UpdateTargetId 设置HTML元素的ID,从服务器接收的内容将插入到该元素中
Url 设置所请求的服务器端URL

AjaxOptions回调属性

属性 JQuery事件 描述
OnBigin beforeSend 在发送请求之前立即调用
OnComplete complete 请求成功时调用
OnFailure error 请求失败时调用
OnSuccess success 请求已完成时调用,不管请求是否成功或失败

  

 Json

源码:http://yunpan.cn/ccvvsjTacNvWc 访问密码 0d10
时间: 2024-08-01 10:41:26

第21章 URL和Ajax辅助器方法的相关文章

第19章 辅助器方法

一.自定义辅助器方法 1.内联辅助器方法 使用@helper标签,具有名称.参数,无返回值,结果直接放到客户端的响应之中.在运行时评估类型. @helper ListArrayItems(string[] items) { <ul> @foreach (string str in items) { <li>@str</li> } </ul> } <div> 水果在这:@ListArrayItems(ViewBag.Fruits) </div

010_模板辅助器方法

相比辅助器方法,模板辅助器方法更智能一些,它们可以指定想要显示的属性,而让MVC框架去判断应该使用什么样的HTML元素.只是,需要一些初期关注才能建立起来,但毕竟是一种显示数据的更为灵活的方式. 这里打算继续使用介绍辅助器方法时使用的项目,但是,CreatePerson.cshtml视图在之前的辅助器方法会在生成的HTML元素上添加data属性,来支持表单验证,这一点在后面对模板辅助器方法的使用时打算禁用,但是,客户端验证特性对程序的其他部分仍然有效,调整后的代码如下(粗体部分为修改的内容):

009_辅助器方法

辅助器方法 在开发ASP.NET MVC项目时,经常会用到辅助器方法,它能够提供很多遍历的工作,比如可以对代码块和标记进行打包等.下面通过新建一个示例项目来看看其在实际使用中的情况. 示例项目 项目名:HelperMethods 模板:Basic(基本) 首先要在项目中添加一个控制器--Home: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We

Creating Custom Helper Methods 创建自定义辅助器方法----辅助器方法 ------ 精通ASP.NET MVC 5

创建内联的辅助器方法 和 拓展方法 好像类似的功能. 不过写在前台更直观

使用整体模型模板辅助器 Using Whole-Model Templated Helpers 模板辅助器方法 精通ASP.NET MVC 5

怎么会

Creating Form Elements --Using BeginForm and EndForm 使用内建的Form辅助器方法 精通ASP.NET MVC 5

Using the BeginForm and EndForm Helper Methods in the CreatePerson.cshtml File

ASP.NET MVC使用HTML辅助器实现分页

在mvc中可以利用扩展方法添加HTML辅助器方法实现分页,这样就可以方便的实现分页代码的复用,代码如下 1 public static MvcHtmlString PageLinks(this HtmlHelper html, int curPage, int totalPage, Func<int, string> pageUrl) 2 { 3 StringBuilder result = new StringBuilder(); 4 int start = 1, end = totalPa

第21章 Ajax 与 Comet

第21章 Ajax 与 Comet 21.1 XMLHttpRequest 对象 21.1.1 XHR的用法 21.1.2 HTTP 头部信息 21.1.3 GET请求 21.1.4 POST请求 21.2 XMLHttpRequest 2级 21.2.1 FormData 21.2.2 超市设定 21.2.3 overrideimeType()方法 21.3 进度事件 21.3.1 load事件 21.3.2 progress事件 21.4 跨域资源共享 21.4.1 IE对CORS的实现 2

锋利jQuery 学习整理之 第六章 jQuery 与Ajax 的应用

1.Ajax 的XMLHttpRequest 对象 XMLHttpRequest 是Ajax 的核心,它是Ajax 实现的关键---发送异步请求.接受响应及执行回调都是通过它来完成的.XMLHttpRequest最早是在Microsoft Internet Explorer  5.0  ActiveX 组件中被引用的. 2.JQuery 中的Ajax jQuery 对Ajax 进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第二层是load().$.load()和$.post(