MVC-04 视图(3)

五、Url辅助方法

    Url辅助方法与HTML辅助方法很类似,HTML辅助方法用来产生HTML标签,而Url辅助方法则负责用来产生Url网址。

@Url.Action("About")

    最后的输出网址如为,/Home/About。

六、Ajax辅助方法

    Ajax是Asynchronous JavaScript and XML的缩写,是目前非常热门的网页开发技术之一,利用Ajax开发技术可以帮助网站减少切换页面的机会、加快网页响应速度、降低网络下载流量,也能让用户经验变得更好,ASP.NET MVC内建了Ajax辅助方法,可以帮助开发人员快速且方便地做到许多Ajax互动效果。

    在开始使用Ajax辅助方法之前,必须要先在页面中载入jQuery以及ASP.NET MVC4项目模板内附的jquery.unobtrusive-ajax.js文件才能正常执行。

    为了让网站载入适当的JavaScript函数库,必须先在Layout页面载入适当的JavaScript文件才行。事实上,在ASP.NET MVC4的Internet模板中已经在_Layout.cshtml页面中加上了jQuery载入,可以开启母版页面的最下方看到以下这段:

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

    可以通过@RenderSection区域来载入jquery.unobtrusive-ajax.js文件。如果需要在页面中使用ASP.NET MVC的Ajax辅助方法,那么可以在每个需要使用Ajax辅助方法的页面最下方加上以下这段@section语法:

@section Scripts {
    @Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.js")
}

1.使用Ajax超链接功能

    使用Ajax辅助方法和使用HTML辅助方法非常类似,但Ajax辅助方法会比HTML辅助方法多出一个AjaxOptions类型参数,用来控制Ajax执行时的各种参数。

        public ActionResult GetTime()
        {
            return Content(DateTime.Now.ToString("F"));
        }
@Ajax.ActionLink("取得目前时间","GetTime",new AjaxOptions{UpdateTargetId="now"})

<div id="now"></div>

@section Scripts {
    @Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.js")
}

    这里有一点必须特别说明一下,就是通过Ajax远端取得网页内容的过程。浏览器为了让执行效率提升,会预设通过Ajax取得的网页内容只要Ajax调用网址没有改变,且远端的HTTP没有包含缓存相关标头(Headers),那么浏览器就不会再次发出Ajax请求。以上述Ajax.ActionLink辅助方法输出的结果为例,当第一次点击取得/Home/GetTime时会回传当下的服务器时间,当第二次点击同一个网址,按理说应该看到内容更新才对,但结果却永远无法更新,除非你清空浏览器缓存。
    如果你的Ajax回传的数据必须即时更新,那么,就必须调整你的Action方法定义,新增一个OutputCache属性(Attribute),强迫浏览器不要缓存这一页的请求,范例如下:

        [OutputCache(NoStore=true,Duration=0)]
        public ActionResult GetTime()
        {
            return Content(DateTime.Now.ToString("F"));
        }

2.使用Ajax表单功能

3.了解AjaxOptions类型

名称说明
公共属性Confirm 获取或设置在提交请求之前显示在确认窗口中的消息。
公共属性 HttpMethod 获取或设置 HTTP 请求方法(“Get”或“Post”)。
公共属性 InsertionMode 获取或设置指定如何将响应插入目标 DOM 元素的模式。
公共属性 LoadingElementDuration 获取或设置一个值(以毫秒为单位),该值控制在显示或隐藏加载元素时的动画持续时间。
公共属性 LoadingElementId 获取或设置在加载 Ajax 函数时要显示的 HTML 元素的 id 特性。
公共属性 OnBegin 获取或设置要在更新页面之前立即调用的 JavaScript 函数的名称。
公共属性 OnComplete 获取或设置在实例化响应数据之后但在更新页面之前,要调用的 JavaScript 函数。
公共属性 OnFailure 获取或设置在页面更新失败时要调用的 JavaScript 函数。
公共属性 OnSuccess 获取或设置在成功更新页面之后要调用的 JavaScript 函数。
公共属性 UpdateTargetId 获取或设置要使用服务器响应来更新的 DOM 元素的 ID。
公共属性 Url 获取或设置要向其发送请求的 URL。
posted @ 2013-12-12 22:56  liesl  阅读(483)  评论(0编辑  收藏  举报