[MVC]Ajax辅助方法
2024-09-30 10:45:09
在开始使用Ajax辅助方法前,必须在页面中载入jQuery以及jquery.unobtrusive-ajax.js文件才能正常执行。
为了让网站载入适当的JS函数库,必须先让Layout页面载入适当的JS文件,在MVC4模板中,默认已将Jquery文件加入,代码如下:
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
其中@Scripts.Render("~/bundles/jquery")即是载入“jquery-x.x.x.js"文件。因为ajax功能并不是每一页都需要使用,所以在预设中没有载入。如果需要在页面中使用ASP.NET MVC的Ajax辅助方法,可以在每个需要使用Ajax辅助方法的页面上加上如下@section语法:
@section scripts
{
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>
}
先前学过@Html.ActionLink辅助方法,用来输出一个超链接,示例:@Html.ActionLink("获取当前的时间","GetTime")
程序就会跳转到GetTime控制器。那么如果不希望浏览器跳转网页,而是将/Home/GetTime网页的执行结果回传到当前网页的div中,该如何操作呢?
@Ajax.ActionLink("取得当前的时间", "GetTime", new AjaxOptions { UpdateTargetId = "now" }) <div id="now"></div>
这样一来,当点击ActionLink以后,从GetTime网页的执行结果回传到id为now的div中。但是这种方式的缺陷是,ajax请求只会被触发一次,只要ajax调用的网址没有改变,并且远端的Http没有包含缓存相关标头,那么浏览器就不会发出Ajax请求,即点击ActionLink无效。
如果你的Ajax回传的数据必须及时更新,那么Action方法定义时,需要添加OutputCache属性,强迫浏览器不要缓存这一页,代码如下:
[OutputCache(NoStore=true,Duration=)]
public ActionResult GetTime()
{
return Content(DateTime.Now.ToString("F"));
}
最新文章
- springboot 的dataSource 一些配置
- 转 #ifndef/#define/#endif使用详解
- CSS鼠标响应事件经过、移动、点击示例介绍
- TNS-01201: Listener cannot find executablen
- 华东交通大学2016年ACM“双基”程序设计竞赛 1005
- UILocalNotification详解
- Leetcode#146 LRU Cache
- hdu 4000 树状数组
- hadoop部署小结的命令
- 法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M【图片 价格 品牌 报价】-京东
- CentOS下Eclipse的安装教程
- 使用CSS灵活的盒子
- python中list列表的方法len()
- 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)
- 永不改变的PCB设计黄金法则
- 什么是POP3、SMTP和IMAP?
- git常用命令,冲突
- 16 python 异常处理
- stm32串口通信实验,一点笔记
- MAVEN相关文章