首页 新闻 搜索 专区 学院

在MVC 3 View Page中 @Ajax.ActionLink 的问题

0
悬赏园豆:50 [待解决问题]
大牛们 小弟看了微软MSDN的例子http://msdn.microsoft.com/en-us/library/dd381533(VS.100).aspx#3有一问题 困扰久 望大侠来解答~~ 
 
在MVC 3 View Page中 @Ajax.ActionLink("Update Status", "GetStatus", new AjaxOptions{UpdateTargetId="status" }) 这Ajax的超链接 点第一次能刷新一次,但是再点几次的时候 Status在页面上就不刷新了。。。 

在Controller层的 GetStatus的方法:
public string GetStatus()
{
    return "Status OK at " + DateTime.Now.ToLongTimeString();
}
 
不知是什么原因。。。。。
 
 
Mike Mao的主页 Mike Mao | 初学一级 | 园豆:162
提问于:2012-06-14 21:16
< >
分享
所有回答(4)
0

浏览器缓存导致的吧。

psforever | 园豆:461 (菜鸟二级) | 2012-06-14 21:24
0

这个是使用AJAX的一个弊端,本身浏览器在访问的时候,就容易因为缓存而不刷新,而使用AJAX时表现更甚。

你可以在地址里增加一些参数,让浏览器强行的去服务器取数据。

无之无 | 园豆:5085 (大侠五级) | 2012-06-14 21:37

有道理 但是我试了下,后面加了时间参数,可是还没不能刷新。。。 不知怎样才能强行去取。。

   @Ajax.ActionLink(Update Status", "GetStatus","Home", new { hid_DelNo = "1", date = DateTime.Now }, newAjaxOptions

{

UpdateTargetId ="status1",

    HttpMethod ="get",

    InsertionMode =InsertionMode.Replace

})

支持(0) 反对(0) Mike Mao | 园豆:162 (初学一级) | 2012-06-15 09:51

@Mike Mao: 查看下输出的地址。

如果把时间戳放置在URL地址里而不是放置在GET参数里呢 ?

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-15 09:56

@笨笨蜗牛: Link的地址确实是静态的。。。 但是小弟不知怎么在Ajax.ActionLink 另加Url? 求大鸟开解

支持(0) 反对(0) Mike Mao | 园豆:162 (初学一级) | 2012-06-15 11:03

@Mike Mao: "GetStatus"这里增加个信息,如:"GetStatus/时间戳",然后再路由表里做个特殊解析就好。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-15 11:08

@笨笨蜗牛: 

还是涛声依旧。。。 点第一次能刷新时间,但是后面的LinkText仍旧是死的。。所以不能刷新了,难道这个还需要Js来更新下。。

@Ajax.ActionLink("Update Status", @"GetStatus/" + DateTime.Now.ToLongTimeString().Replace(" ", "").Replace(":", ""), "Home", new

 AjaxOptions{HttpMethod ="get",

InsertionMode =InsertionMode.Replace,

UpdateTargetId ="status1"

})

<spanid="status1">No Status</span>

 路由是:

routes.MapRoute(

"Home",

 "Home/GetStatus/{id}",

 

new { controller = "Home", action = "GetStatus" ,id =UrlParameter.Optional}

 );

支持(0) 反对(0) Mike Mao | 园豆:162 (初学一级) | 2012-06-15 13:23

@Mike Mao: 这个就不清楚了,用这个比较少,需要分析输出的 hamtl代码才能确定。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-15 13:34
0

肯定是UpdateTargetId没有了,你看看返回的部分HTML中有没有包含UpdateTargetId

zhangweiwen | 园豆:904 (小虾三级) | 2012-06-18 11:54
0

断点到Controller层的 GetStatus的方法,看看每次点击是否执行了该方法

netqiang | 园豆:405 (菜鸟二级) | 2015-03-10 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册