在开始使用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"));
}

最新文章

  1. springboot 的dataSource 一些配置
  2. 转 #ifndef/#define/#endif使用详解
  3. CSS鼠标响应事件经过、移动、点击示例介绍
  4. TNS-01201: Listener cannot find executablen
  5. 华东交通大学2016年ACM“双基”程序设计竞赛 1005
  6. UILocalNotification详解
  7. Leetcode#146 LRU Cache
  8. hdu 4000 树状数组
  9. hadoop部署小结的命令
  10. 法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M【图片 价格 品牌 报价】-京东
  11. CentOS下Eclipse的安装教程
  12. 使用CSS灵活的盒子
  13. python中list列表的方法len()
  14. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)
  15. 永不改变的PCB设计黄金法则
  16. 什么是POP3、SMTP和IMAP?
  17. git常用命令,冲突
  18. 16 python 异常处理
  19. stm32串口通信实验,一点笔记
  20. MAVEN相关文章

热门文章

  1. python之使用request模块发送post和get请求
  2. 浅谈算法——KMP
  3. ACM_LRU页面置换算法
  4. 题解报告:poj 2631 Roads in the North(最长链)
  5. 一个因xdata声明引起的隐含错误
  6. angular(一)路由的配置(1)
  7. 洛谷P2765 魔术球问题(贪心 最大流)
  8. 微信小程序 逻辑层
  9. STM32 modbus CRC16校验
  10. apache配置多域名