MVC-04 视图(3)

时间:2023-03-08 21:38:16

五、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=)]
public ActionResult GetTime()
{
return Content(DateTime.Now.ToString("F"));
}

2.使用Ajax表单功能

3.了解AjaxOptions类型

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