在.NET MVC下不用iframe实现局部加载html
最近在做个后台系统,之前都是用iframe来实现加载内容,左侧菜单不刷新。但一直不喜欢这种方法,有许多弊端。今天自己在网上查找了一番后找到了比较好的替代方案:
一、利用html的锚点标记来实现无刷新页面加载:
Index.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>局部刷新demo</title>
@Scripts.Render("~/bundles/jquery")
</head>
<body>
<a href="#/~Demo1">Demo1</a>
<br>
<a href="#/~Demo2">Demo2</a>
<br>
<a href="#/~Demo3">Demo3</a>
<br>
<div id="content"><h1>Index</h1></div>
<script type="text/javascript">
$('a').each(function() {
this.onclick = function() {
$.get(this.href.split('#/~')[1], function(data) {
$('#content').html(data);
});
};
});
</script>
</body>
</html>
Demo2.cshtml:
<h2>Demo2</h2>
<h2>Demo2</h2>
其它,demo1,demo3就不贴上来了。
DemoController:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcDemo.Controllers
{
public class DemoController : Controller
{
// GET: Demo
public ActionResult Index()
{
return View();
} public ActionResult Demo1()
{
return View();
} public ActionResult Demo2()
{
return View();
} public ActionResult Demo3()
{
return View();
}
}
}
然后运行就可以看到效果了。弊端就是地址栏路径会显示点击加载页面的路径。
二、利用jQuery.load()方法
方法说明:load(url,[data],[callback]);
load方法与html方法类似,不过load是远程加载html代码,而且被加载的html里包含的js可以正常运行。废话不多说,上代码:
Index.cshtml
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>局部刷新demo</title>
@Scripts.Render("~/bundles/jquery")
</head>
<body>
<a href="#" data-link="Demo1">Demo1</a>
<br>
<a href="#" data-link="Demo2">Demo2</a>
<br>
<a href="#" data-link="Demo3">Demo3</a>
<br>
<div id="content"><h1>Index</h1></div>
<script type="text/javascript">
$('a').each(function() {
this.onclick = function () {
$('#content').load($(this).data("link"));
};
});
</script>
</body>
</html>
注意是显示内容的容器调用load。
第一次写博客,语言组织能力不行,如有不对的,欢迎提出!
在.NET MVC下不用iframe实现局部加载html的更多相关文章
- easyui-tabs 在ie8下基于iframe嵌套页面加载成功后切换空白问题
这是一个很坑的问题,由于项目必须支持ie8的情况下,产生了这个问题.在我进行逐步对比的分析过后,终于发现了原因所在:
- IE下iframe不能正常加载,显示空白
下午帮忙看了一个web问题,index.html中嵌入<iframe>来加载同文件目录下的一个页面,在多个浏览器下测试,发现IE浏览器中会出现问题,<iframe>不能正常加载 ...
- 基于SwiperJs的H5/移动端下拉刷新上拉加载更多的效果
最早时,公司的H5项目中曾用过点击一个"加载更多"的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页 ...
- ListView下拉刷新上拉加载更多实现
这篇文章将带大家了解listview下拉刷新和上拉加载更多的实现过程,先看效果(注:图片中listview中的阴影可以加上属性android:fadingEdge="none"去掉 ...
- 基于SwiperJs的H5/移动端下拉刷新上拉加载更多
最早时,公司的H5项目中曾用过点击一个"加载更多"的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页 ...
- 安卓开发笔记——关于开源组件PullToRefresh实现下拉刷新和上拉加载(一分钟搞定,超级简单)
前言 以前在实现ListView下拉刷新和上拉加载数据的时候都是去继承原生的ListView重写它的一些方法,实现起来非常繁杂,需要我们自己去给ListView定制下拉刷新和上拉加载的布局文件,然后添 ...
- 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载
title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...
- Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理
RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加Header ...
- iscroll.js 下拉刷新和上拉加载
html代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
随机推荐
- Flume笔记--source端监听目录,sink端上传到HDFS
官方文档参数解释:http://flume.apache.org/FlumeUserGuide.html#hdfs-sink 需要注意:文件格式,fileType=DataStream 默认为Sequ ...
- 简单DOS命令实现局域网Windows远程关机
1秒内重启局域网内计算机名为ppgsvr-pc的用户电脑shutdown -r -m \\ComputerName -t 1 1秒内关闭局域网内ppgsvr用户电脑shutdown -s -m \\C ...
- quartz2.2.1-测试01
工程列表: (1)web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...
- Cracking the coding interview--Q1.8
原文: Assume you have a method isSubstring which checks if one word is a substring of another. Given t ...
- Yii数据库
http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.ar http://zhengdl126.iteye.com/blog/1460779 ...
- word 生成目录
生成目录: (1)Ctrl+End,到达文档的最后一页: (2)"插入"菜单--引用--索引和目录(此时出现索引和目录对话框): (3)单击"目录"选项卡 a. ...
- 设计模式(十四):Command命令模式 -- 行为型模式
1.概述 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来 ...
- LINQ 内链接 左链接 右链接
原文地址:http://blog.sina.com.cn/s/blog_46e9573c01014fx2.html 1.左连接: var LeftJoin = from emp in ListOfEm ...
- Best Time to Buy and Sell Stock IV 解答
Question Say you have an array for which the ith element is the price of a given stock on day i. Des ...
- [LeetCode] Search in Rotated Sorted Array I (33) && II (81) 解题思路
33. Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you be ...