前几天研究SSE,用浏览器做侦听后台数据库数据变化,如果有更新,就即时通过浏览器,使用SSE效果果然OK,侦听数据库有更新时马上会向浏览器通知有新数据,我还在浏览器里放了短音提示,但遇到一个问题,发出短音提示时刷新页面,即时显示出数据的变化,由于网页页面中使用的元素复杂,使用JS来改变难度很大,还不如重新加载一次网页来的方便,但整网页重新加载会使用刚刚显示的通知信息和短音提示消失,起不到通知客户的效果,所以想来想去,还是局部刷新比较好,这时想到asp.net MVC4有个分部视图可以做个局部刷新,实现了一下,达到了要求,以后应该多用分部视图,大大提高灵活性。

具体实现就不写了,来点简单的思路:

1.写好分部视图的控制器

public PartialViewResult GetData(){
//这里加载一些页面需要的数据,可以使用ViewBag,ViewData,还可以使用Model
var list=dao.get......;
return PartialView(list);
}

2.写好分部视图的网页

@model List<String>
@using Info.Models;
<div>
//显示从控制器获取的数据库
</div>

3.主页中加入分部视图

<div class="mainbox">
@{Html.RenderAction("GetData");}
</div>

4.在主页中使用JS加载分部视图

var es=new EventSource("/Home/SSE");

es.onmessage=function(e){
if(e.data=="ok"){//说明数据库有更新
$(".mainbox").load("/Home/GetData");
document.getElementById("mp3").play();
$("#msg").text("有新的数据已提交").show();
}
}

这样就实现了有新数据时即时更新页面,通过分部视图局部加载控制器中的数据到网页页面中。

asp.net mvc4 使用分部视图来刷新数据库的更多相关文章

  1. ASP.NET MVC之分部视图和ChildAction(三)

    前言 上节我们已经非常清晰并且明确的讲了@Html.ActionLink的作用,这一节我们开始讲讲分部视图以及孩子Action. 话题 在C#中我们知道继承的目的是为了代码的复用,在Web应用程序同样 ...

  2. .net mvc 利用分部视图局部刷新.

    页面利于$.Ajax: $(function(){ $("#btnpartview").click(function () { var model = []; model.push ...

  3. ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...

  4. ASP.NET Core 入门笔记8,ASP.NET Core MVC 分部视图入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...

  5. Asp.net Mvc中分部视图获取后台数据并展示

    方式一: 1.主页面中代码: @{Html.RenderAction("CreateLeftMenu");} 2.Controller中代码: public PartialView ...

  6. ASP.NET MVC 使用分部视图制作公共头部,尾部,并通过ViewBag传值

    一:新建分部视图 二:布局页_Layout.cshtml上调用 不灵活,不能传递数据,引用静态公共部分 @Html.Partial("_Head") @Html.Partial(& ...

  7. ASP.NET MVC3调用分部视图-PartialView的几种方式(集)

    我们的网页通常会有好几个部分组成,一些公共的区域我们通常会做成PartialView(部分视图),但这些视图并不是完全固定的,所以还是需要 特定的Controller来控制.如果只是静态的html,虽 ...

  8. ASP.NET MVC4添加区域视图 找到多个与名为“home”的控制器匹配的类型

    今天在项目中遇到一个问题,在MVC下想建立一个区域的后台Boss视图,出现了"找到多个与名为“home”的控制器匹配的类型"的问题,希望下面的解决方案能够帮助到大家 这是网站的整体 ...

  9. asp.net mvc4 eui datagrid视图重写分页

    效果图 前端代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="vi ...

随机推荐

  1. 苏州Uber优步司机奖励政策(12月21日到12月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. (转)Html邮件CSS指南

    转载地址:http://www.maildesign.cn/archives/937 分享来自Campaignmonitor非常实用的Html邮件中CSS的支持文档! 他们总结的Html邮件的CSS指 ...

  3. Linux 下获取本机IP

    http://blog.csdn.net/K346K346/article/details/48231933 int main () { /* struct ifaddrs *ifap, *ifa; ...

  4. MongoDB-Ubuntu环境下安装

    1.在官网下载安装包,下载后为 mongodb-linux-x86_64-ubuntu1604-3.4.6.tgz 解压:tar -zxvf mongodb-linux-x86_64-ubuntu16 ...

  5. Elastic stack ——X-Pack安装

    X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中.在Elasticsearch 5.0.0之前,您必须安装单独的Shield,Watc ...

  6. 微信小程序学习笔记(四)

    云函数条件查询 exports.main = async (event, context) => { try { return await db.collection('sweething'). ...

  7. ant-design学习准备_1

    在学习ant-desin过程中,发现很多知识都不清楚,从现在开始,每天将自己学习到的知识进行一个总结记录,前端大佬勿扰勿喷.先介绍几个基础概念和一些常用命令: 1.什么是脚手架 我们经常在各个博客论坛 ...

  8. python里pickle模块

    Pickle模块用于将复杂的文件转化为二进制的文件 pickle模块一般是在源代码里面含有较大的字典或者列表等复杂文件时,我们如果将文件直接写在源代码里面,这样会使得代码很冗余,并且源代码文件所占空间 ...

  9. Unity Lighting - Choosing a Lighting Technique 选择照明技术(一)

      Choosing a Lighting Technique 选择照明技术 https://unity3d.com/cn/learn/tutorials/topics/graphics/choosi ...

  10. JavaScript --经典问题

    JavaScript中如何检测一个变量是一个String类型?请写出函数实现 方法1. function isString(obj){ return typeof(obj) === "str ...