AJAX提交数据服务器响应后页面数据未更新,求解释
首先内容页
<div class="page" id="JsPaging">
<div> <%Html.RenderPartial("_oeder", Model); %></div>
<a href="javascript:nextt();">下一页</a>
</div>
<script>
function nextt() {
$.ajax({
type: "post",
url: "/Home/ShowList",
data: "id=" + 2
})
}
</script>
用AJAX提交到控制器,(id未使用,用的是模拟数据)
然后是实体绑定
<div id="dvOrders">
<ul class="newslist" id="newslist">
<% foreach (xld_news mod in Model)
{
%>
<!--0-->
<li><a href="#" target="_blank">[<%=mod.Typename %>]<%=mod.Title %></a><span>[<%=mod.Addtime %>]</span>
</li>
<!--0-->
<%
} %>
</ul>
</div>
这里用F11调试数是更新的,但是运行到最后页面还是现实原来的内容,返回的时间值为毫秒
接下来是控制器
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ShowList(int id)
{
//防止缓存
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Today.AddYears(-2));
List<xld_news> ty = newsM.getTopOfNews(20);
if (Request.IsAjaxRequest())
return PartialView("_oeder", ty);
return View(ty);
}
接着循环模拟数据
public static List<xld_news> getTopOfNews(int num)
{
List<xld_news> list = new List<xld_news>();
for (int i = 0; i < 10; i++)
{
xld_news news = new xld_news();
news.Addtime = string.Format("{0:yyyy-MM-dd-HH-mm-ss-ffff}", DateTime.Now);
news.Id = i;
news.Neirong = "neirong" + i.ToString();
news.Title = "标题" + i.ToString();
news.Typename = "类型" + i.ToString();
news.Imglink = "imglink" + i.ToString();
list.Add(news);
}
return list;
}
附上结构图
关键的问题来了:
页面的数据在用F11调试的时候能发现实体Mdel的内容是更新的,但是运行完F11过后,页面内容与提交前时没变,咋回事呢? ajax asp.net MVC 服务器无响应 页面数据未刷新
[解决办法]
ajax只能处理,然后返回结果,并不能控制页面控件,页面上的控件需要js在返回结果上去判断,然后处理
[解决办法]
不过fineui已经为我们找到了好的解决方案