简洁的MVC思想框架——Nancy(Post操作与外部引用css和JS)
之前介绍了关于Nancy配置与Get基础操作,以下来介绍有关Nancy的Post操作。
第一步,设计主界面,以登录界面为例:Login.cshtml
路径为:

设计好页面后,在之前的modules类中设定指向路径和相关post操作,如下图所示:
<body>
<div id="login">
<form action="/Home" method="post" id="form1">
<div id="bigimg">
<img src="data:images/bigimg.jpg" />
</div>
<div id="loginbox">
<div id="title-login">登录</div>
<a id="title-register" href="#">注册账号 ></a>
<div id="forinput">
帐号:<br>
<p>
<input id="user" name="userId" tabindex="1" type="text">
<span id="error_userId"></span>
</p>密码:
<a href="#" style="color: #00A1D6; float: right; *margin-top: -10px; display: block;"> 忘记了密码? </a>
<br>
<p>
<input id="password" type="password" tabindex="2" name="userPwd">
<span id="error_userPwd"></span>
</p>
验证码:
<br>
<p>
<input id="code" name="verifity" tabindex="3" type="text">
<span>
<img id="Verifity" onclick="src = '/CreateCode?'+Math.random()" src="/CreateCode" style="vertical-align: middle;">
</span>
<span id="error_code" style="margin-left: 18px;"></span>
</p>
</div>
<input type="submit" id="submit" value="登 录" onclick="return checkLogin()">
</div>
</form>
</div>
</body>
#region 登录——表单验证,成功跳转至主页面
Post["/Home"] = p =>
{
//获取表单
var user = SqlHelperServer.ToDBValue(Request.Form);
//验证用户名是否存在
if (!userService.isUserId(user.userId))
{
return "<script>alert('用户名不存在!');location.href='/'</script>";
}
//验证密码输入是否正确
if (userService.GetUserPwd(user.userId) != user.userPwd)
{
return "<script>alert('密码错误!');location.href='/'</script>";
}
if (user.verifity != Session["Code"].ToString())
{
return "<script>alert('验证码错误!');location.href='/'</script>";
}
ViewBag.UserId = user.userId;
DataTable dt = userService.GetUser();
return View["User/Home.cshtml", dt.Rows];
};
#endregion
其中关于Sqlhelperserver是有关数据库操作公共类,其中ToDBvalue是获取页面传入所有html的表单数据,其中标签必须有“name”属性。
public static object ToDBValue(this object value)
{
return value == null ? DBNull.Value : value;
}
至此,Post操作完成!
其中还涉及到有关引用外部JS和外部css的文件,这根普通的MVC不一样,也经过相当长的研究才摸索出来,最后发现很简单,只要在modules新建一个类,如下:
public class Bootstrapper : DefaultNancyBootstrapper
{ protected override void ConfigureConventions(NancyConventions nancyConventions)
{
base.ConfigureConventions(nancyConventions);
nancyConventions.StaticContentsConventions.Clear();
nancyConventions.StaticContentsConventions.Add
(StaticContentConventionBuilder.AddDirectory("css", "/css"));
nancyConventions.StaticContentsConventions.Add
(StaticContentConventionBuilder.AddDirectory("js", "/script"));
nancyConventions.StaticContentsConventions.Add
(StaticContentConventionBuilder.AddDirectory("images", "/images"));
}
}
在之后还会讲解关于验证码的获取与Session的相关操作,至于其他跟MVC类似,无多大变动。
简洁的MVC思想框架——Nancy(Post操作与外部引用css和JS)的更多相关文章
- 简洁的MVC思想框架——Nancy(环境配置与Get操作)
Nancy官网——https://github.com/NancyFx/Nancy 概述:Nancy是一个开源的Web轻型框架内核符合MVC思想,有开发方便,路由简单的特点,而且功能齐全 起步:Hel ...
- 简洁的MVC思想框架——Nancy(Session的使用)
前文提到关于Nancy中GET和POST以及外部引用图片,css和JS的文件等操作.今天所讲的是Nancy关于Session相关操作. Session作为web开发中极其重要的一部分,而Nancy中S ...
- php ci框架中载入css和js文件失败的原因及解决方法
在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用ba ...
- 新作《ASP.NET MVC 5框架揭秘》正式出版
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式.ASP.NET Web Form借鉴了Windows Form基 ...
- Spring MVC + jpa框架搭建,及全面分析
一,hibernate与jpa的关系 首先明确一点jpa是什么?以前我就搞不清楚jpa和hibernate的关系. 1,JPA(Java Persistence API)是Sun官方提出的Java持久 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ( ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2) ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 (2):数据 ...
随机推荐
- poj 2954 Triangle 三角形内的整点数
poj 2954 Triangle 题意 给出一个三角形的三个点,问三角形内部有多少个整点. 解法 pick's law 一个多边形如果每个顶点都由整点构成,该多边形的面积为\(S\),该多边形边上的 ...
- Tensorflow 读写 tfrecord 文件(Python3)
TensorFlow笔记博客:https://blog.csdn.net/xierhacker/article/category/6511974 写入tfrecord文件 import tensorf ...
- 《一个民企CEO的职场阳谋》–读书总结(上)
职场是一个战场,很多人几十年在这里战斗. 职场是一个熔炉,很多人大半生在这里修炼. 如果在办公室里得不到快乐,生活就不会快乐. 如果公司里头感觉不到幸福,人生就不会幸福.(以上四句来自老刘的博客) & ...
- 8:30+1.5小时,返回时间格式的 php函数
一个实用的自定义函数 /** * 传入8:30格式的开始时间,和小数形式的小时长度,返回结束时间 * @param [type] $start [description] 8:30 * @param ...
- MySQL5.7 的 错误堆栈缓冲
什么是错误缓冲堆栈呢? 举个非常简单的样例,比方运行以下一条语句:mysql> INSERT INTO t_datetime VALUES(2,'4','5');ERROR 1292 (2200 ...
- DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
背景: 上一篇博文对DICOM中的网络传输进行了介绍.主要參照DCMTK Wiki中的英文原文.通过对照DCMTK与fo-dicom两个开源库对DICOM标准的详细实现,对理解DICOM标准有一个更直 ...
- Spring25大面试题
1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发人员攻克了开发中基础性的问题 ...
- (OpenGL ES 2.0 Shading Language) attribute 、uniform 和 varying
一:attribute .uniform 和 varying 都是glsl的变量的内存指示器(storage qualifiers),指明变量的内存特性 二:attribute attribute 是 ...
- MainWndProc运行观察(有待研究)
MainWndProc运行观察 把MainWndProc改写成如下代码,便于观察:procedure TWinControl.MainWndProc(var Message: TMessage);be ...
- 51nod-1253: Kundu and Tree
[传送门:51nod-1253] 简要题意: 给出一棵n个点的树,树上的边要么为黑,要么为红 求出所有的三元组(a,b,c)的数量,满足a到b,b到c,c到a三条路径上分别有至少一条红边 题解: 显然 ...