简陋的 ASP.NET CORE 单页Web应用程序“框架”
我对ASP.NET CORE了解不多,不知道是不是重复造轮子,也或者什么也不是,这个Demo是这样的:
1、非常简单或者说原始;
2、将单页Web应用增加了一个页(Page)概念(相当于MVC的 View)
3、Ajax无刷新跳转到新 Page,并支持H5浏览器刷新 Page、前进后退到其它 Page
4、类 MVC 开发模式,Action 提供 Data,Js 渲染 View,Data 和 View 开发分离
完整代码可以访问 https://github.com/fonshen/Fonshen.SPA
都是很简单的东西,好像没什么好说的,直接看核心应用代码:
一、单页的基础页面 /View/Shared/Default.cshtml 展示了一个菜单,点击菜单无刷新切换到新栏目,新栏目可以刷新,后退前进
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="~/js/jquery-1.7.1.min.js"></script>
<script src="~/js/Basic.js?92"></script>
</head>
<body>
<div id="header"></div>
<div id="menu">
<ul>
<li><a href="javascript:Page.Jump('/')">首页</a></li>
<li><a href="javascript:Page.Jump('/Home/About/1')">关于第1页</a></li>
<li><a href="javascript:Page.Jump('/Home/About/2')">关于第2页</a></li>
<li><a href="javascript:Page.Jump('/Home/Contact')">联系</a></li>
</ul>
</div>
<div id="content"></div>
<div id="footer"></div>
<script>
Page.Data = @Html.Raw(ViewData["Page.Data"]);
</script>
</body>
</html>
二、控制器类,每一个 return this.Page(data) 的 Action 对应一个 Page
using Fonshen.SPA.Extensions;
using Microsoft.AspNetCore.Mvc; // For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace Fonshen.SPA.Controllers
{
public class HomeController : Controller
{
// GET: /<controller>/
public IActionResult Index()
{
var data = new
{
content = "index"
};
return this.Page(data);
} public IActionResult About(int id)
{
var data = new
{
content = "about",
page = id
};
return this.Page(data);
} public IActionResult Contact()
{
var data = new
{
content = "contact"
};
return this.Page(data);
}
}
}
三、3个Action 对应3个 Js 渲染文件
// /js/Home/Index.js 文件负责渲染 Index Action
// Page.Data 对应服务端的 data
Page.Render = function () {
Page.Body.html("Index:" + Page.Data.content);
}; // /js/Home/About.js 文件 负责渲染 About Action
Page.Render = function () {
Page.Body.html("About->第" + Page.Data.page + "页");
}; // /js/Home/Contact.js 文件 负责渲染 Contact Action
Page.Render = function () {
Page.Body.html("Contact:" + Page.Data.content);
};
简陋的 ASP.NET CORE 单页Web应用程序“框架”的更多相关文章
- 从头编写asp.net core 2.0 web api 基础框架 (5) + 使用Identity Server 4建立Authorization Server (7) 可运行前后台源码
前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第 ...
- 从头编写 asp.net core 2.0 web api 基础框架 (1)
工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...
- 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)
工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
第一部分:http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html 之前我介 ...
- 【转载】从头编写 asp.net core 2.0 web api 基础框架 (3)
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc ...
- 在 CentOS 7(Linux)上部署ASP.NET Core 2.2 Web应用程序(Tengine、Asp.Net Core MVC、Centos 7、MySql)
一.前言 1.简单记录一下Linux CentOS 7中安装与配置Tengine的详细步骤. 2.简单比较一下Tengine 和Nginx 3.搭建Asp.net Core和部署 Web程序 4.总结 ...
- 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分 ...
- 【转载】从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc ...
- 从头编写 asp.net core 2.0 web api 基础框架 (2)
上一篇是: http://www.cnblogs.com/cgzl/p/7637250.html Github源码地址是: https://github.com/solenovex/Building- ...
随机推荐
- 数列[专杀Splay版]
时间限制: 3 Sec 内存限制: 128 MB提交: 49 解决: 7 题目描述 输入一个数列,你需要进行如下操作: 1. 把编号为I的数值改为K 2. 输出从小到大排序后第k个数 输入 输 ...
- kaggle Titanic心得
Titanic是kaggle上一个练手的比赛,kaggle平台提供一部分人的特征,以及是否遇难,目的是预测另一部分人是否遇难.目前抽工作之余,断断续续弄了点,成绩为0.79426.在这个比赛过程中,接 ...
- document.getElementById("searchForm").submit is not a function
document.getElementById("searchForm").submit is not a function在用userForm.submit() 提交表单的时候, ...
- Android 音乐播放
android简单音乐播放控制代码 这个几个月业余时间一直在做一个android项目,里面涉及到了音乐播放功能.很简单那种,播放.暂停.上一曲.下一曲.音量调节等. 音乐播放主要使用的对象是Media ...
- Swift数组字面量
可以用一个数组字面量来初始化一个数组,简单地把一个或多个值放在一起就可以了.数组字面量的写法是一行用逗号隔开的值,并在行的两端用一对方括号包起来: [value , value , value ] 下 ...
- SharePoint 2016 修改左上角连接
SharePoint 2016默认会有左上角这样的一个功能. 估计都想把它改掉. 方法1: 打开,输入下面的命令,可将图中的sharepoint修改为想要的文字 $webapp = Get-SPWe ...
- VMware Mac OS中无法找到适应的分辨率的解决办法
使用VMware安装的Mac OS中,有时在显示器的分辨率中的选择项里面,没有对应显示的分辨率可供选择的时候(无法自适应),可以在虚拟机设置里,显示器中修改强制分辨率.修改过后重启虚拟机,就可以有对应 ...
- JSP基本语法总结【2】九大内置对象
内置对象也称为内建对象,隐含对象,即无需声明,直接可以在JSP中使用的java对象.JSP的内置对象就是把最常用.重要的几个对象直接创建了. JSP有9大内置对象:Request,Response, ...
- Chrome浏览器扩展开发系列之四:Browser Action类型的Chrome浏览器扩展
Browser Action类型的Google Chrome扩展程序,通常在Chrome浏览器的工具栏中,地址栏的右侧,有一个始终存在的图标.也就是说,这个图标与浏览器相关,只要安装了该Chrome扩 ...
- 访问Access日期字段
在使用sql访问Access日期字段,应在变量前后加#,例子: s:=Format(select xueshID,name,times,qukbz,skdate,banji from dianmjil ...