简洁的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):数据 ...
随机推荐
- asp.net中Server.MapPath的使用
http://www.studyofnet.com/news/184.html 本文导读:Server.MapPath()的全名是System.Web.HttpContext.Current.Se ...
- mac pro 安装 composer 失败
http://getcomposer.org/doc/00-intro.md#using-composer $ brew install josegonzalez/php/composer 出现错误: ...
- UVA1583-Digit Generator(紫书例题3.5)
For a positive integer N , the digit-sum of N is defined as the sum of N itself and its digits. When ...
- 【安装配置Redis】
目录 安装 配置 Redis官网:https://redis.io Redis是完全开源免费的,遵守BSD协议. Redis是一个高性能的key-value数据库. @ *** Redis具有以下特点 ...
- 变量命名规范及str类型
变量命名规范: 1.单词之间用_分开 add_num() 2.全局变量,大写 PI,NUMBER() 3.实例变量,以_开头 _example() 4.私有实例变量 __private() 5.普通函 ...
- 高级聚合函数rollup(),cube(),grouping sets()
rollup(),cube(),grouping sets() 上面这几个函数,是对group by分组功能做的功能扩展. a.rollup() 功能:在原结果基础上追加一行总合计记录 ...
- 洛谷 1052 dp 状态压缩
洛谷1052 dp 状态压缩 传送门 (https://www.luogu.org/problem/show?pid=1052#sub) 做完这道题之后,感觉涨了好多见识,以前做的好多状压题目都是将一 ...
- C#-委托 lambda 匿名方法 匿名类型
1.lambda 匿名方法 匿名类型 delegate void d1(); d1 d = delegate(){Console.WriteLine("this is a test" ...
- HDU 4302 Contest 1
维护两个优先队列即可.要注意,当出现蛋糕的位置刚好在狗的位置时,存在右边. 注意输出大小写... #include <iostream> #include <queue> #i ...
- mybatis批量插入oracle大量数据记录性能问题解决
环境: mybatis + oracle11g r2 1.使用"直接路径插入"(以下sql语句中的"/*+append_values */"),而且使用key ...