求 Asp.net mvc ajax 无刷新更新最新消息 最近需要用到的一个效果,类似新浪微薄更新消息的效果。我想使用Asp.net mvc ajax + Jquery,可不知道怎么实现。请求高人指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20110802/14/f7ddf0f2-d3db-4e09-9f76-7645180faf08.html参看 (8)使用JSON和jQuery MVC2http://www.open-china.net/blog/116937.html action里查询出数据,拼装个json(这个根据需要来拼装) 不嵌套表只用自带的tojson()就可以。然后 view里 jquery解析遍历返回的这个json 然后拼接html /** 简单整理了今天做的asp.net mvc中实现自动刷新的方法。 * 2011年8月31日20:04:46 */1、主页Js部分:使用setInterval定时执行<script src="@Url.Content("~/jQuery/jquery-1.6.min.js")" type="text/javascript"></script> <script type="text/javascript"> //最新消息每5秒刷新一次 setInterval(function () { $.ajax({ url: '@Url.Action("HotNews", "Controller名称")', //异步请求Action data: "[email protected]", //参数Id(可多个参数:data: "[email protected]&[email protected]",) type: "POST", success: function (result) { $("#partialContainer").html(result); } }); }, 5000); </script>页面中使用DIV接受返回的内容(.cshtml) <div id="partialContainer"> </div>2、异步请求的Action(.Controller) [Description("最新消息(异步刷新调用)")] public ActionResult HotNews(string id) { var contentList = new List<ContentListViewModel>(); var Contents = ContentService.GetHotNews(id, 3);//这里获取最新3条记录 if (Contents != null && Contents.Any()) { contentList.AddRange(Contents.OrderByDescending(c => c.CreateTime) .Select(h => new ContentListViewModel { Id = h.Id, Name = h.Name, Description = h.Description, 50 }); } return View(contentList); } 3、Action对应对应页面(.cshtml)@model List<Website.ViewModel.ContentListViewModel>@{ ViewBag.Title = ""; Layout = null;}@if (Model != null && Model.Any()){ foreach (var hot in Model) { <div class="hotNewsContent m10"> <h1> @Html.ActionLink(hot.Name, "ContentDetail", "Controller名称", new { id = hot.ContentId }, null) </h1> <p> @hot.Description @Html.ActionLink("...详细", "ContentDetail", "Controller名称", new { id = hot.Id }, new { @class = "contentMore" }) </p> </div> }}else{ <div class="hotNewsContent m10"> <h1> <a href="#">暂无最新消息</a></h1> <p> </p> </div> } asp.net mvc自身没有能力做基于状态的web应用程序,所有企业应用交互都要靠ajax编程才能很好地维系状态,除此之外没有别的方法。 如何在FormView中设置日期显示格式? asp.net开发网站的网址如何静态化,更利于优化 利用XML配置 实现信息管理系统增删改查界面和应用 UrlreWritingNet在IIS7的配置,急 关于FreeTextBox的问题 在线等!!!!! 二维数组 VS 2005,网站(文件系统)在本地测试可以正常登录,但发布到服务器上后,登录失败: 未知的用户名或错误密码。 关于在线人数统计!(急!) jsp应用bean调用bean中的大写变量~ 奇怪的问题 js给俩个级联Dropdownlist赋值,但后台给它赋值怎么操作 关于数据类型的问题,求指教
http://www.open-china.net/blog/116937.html
然后 view里 jquery解析遍历返回的这个json 然后拼接html
/** 简单整理了今天做的asp.net mvc中实现自动刷新的方法。
* 2011年8月31日20:04:46
*/1、主页Js部分:使用setInterval定时执行
<script src="@Url.Content("~/jQuery/jquery-1.6.min.js")" type="text/javascript"></script>
<script type="text/javascript">
//最新消息每5秒刷新一次
setInterval(function () {
$.ajax({
url: '@Url.Action("HotNews", "Controller名称")', //异步请求Action
data: "[email protected]", //参数Id(可多个参数:data: "[email protected]&[email protected]",)
type: "POST",
success: function (result) {
$("#partialContainer").html(result);
}
});
}, 5000);
</script>页面中使用DIV接受返回的内容(.cshtml)
<div id="partialContainer">
</div>
2、异步请求的Action(.Controller) [Description("最新消息(异步刷新调用)")]
public ActionResult HotNews(string id)
{
var contentList = new List<ContentListViewModel>();
var Contents = ContentService.GetHotNews(id, 3);//这里获取最新3条记录
if (Contents != null && Contents.Any())
{
contentList.AddRange(Contents.OrderByDescending(c => c.CreateTime)
.Select(h => new ContentListViewModel
{
Id = h.Id,
Name = h.Name,
Description = h.Description, 50
});
}
return View(contentList);
}
3、Action对应对应页面(.cshtml)@model List<Website.ViewModel.ContentListViewModel>
@{
ViewBag.Title = "";
Layout = null;
}
@if (Model != null && Model.Any())
{
foreach (var hot in Model)
{
<div class="hotNewsContent m10">
<h1>
@Html.ActionLink(hot.Name, "ContentDetail", "Controller名称", new { id = hot.ContentId }, null)
</h1>
<p>
@hot.Description
@Html.ActionLink("...详细", "ContentDetail", "Controller名称", new { id = hot.Id }, new { @class = "contentMore" })
</p>
</div>
}
}
else
{
<div class="hotNewsContent m10">
<h1>
<a href="#">暂无最新消息</a></h1>
<p>
</p>
</div>
}
asp.net mvc自身没有能力做基于状态的web应用程序,所有企业应用交互都要靠ajax编程才能很好地维系状态,除此之外没有别的方法。