简洁的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="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>

 1 #region 登录——表单验证,成功跳转至主页面
 2
 3             Post["/Home"] = p =>
 4             {
 5                 //获取表单
 6                 var user = SqlHelperServer.ToDBValue(Request.Form);
 7                 //验证用户名是否存在
 8                 if (!userService.isUserId(user.userId))
 9                 {
10                     return "<script>alert(‘用户名不存在!‘);location.href=‘/‘</script>";
11                 }
12                 //验证密码输入是否正确
13                 if (userService.GetUserPwd(user.userId) != user.userPwd)
14                 {
15                     return "<script>alert(‘密码错误!‘);location.href=‘/‘</script>";
16                 }
17                 if (user.verifity != Session["Code"].ToString())
18                 {
19                     return "<script>alert(‘验证码错误!‘);location.href=‘/‘</script>";
20                 }
21                 ViewBag.UserId = user.userId;
22                 DataTable dt = userService.GetUser();
23                 return View["User/Home.cshtml", dt.Rows];
24             };
25
26             #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类似,无多大变动。

时间: 2024-08-24 13:47:11

简洁的MVC思想框架——Nancy(Post操作与外部引用css和JS)的相关文章

简洁的MVC思想框架——Nancy(环境配置与Get操作)

Nancy官网——https://github.com/NancyFx/Nancy 概述:Nancy是一个开源的Web轻型框架内核符合MVC思想,有开发方便,路由简单的特点,而且功能齐全 起步:Hellow World 一.建立Asp.Net空Web应用程序 二.使用NuGet添加Nancy包的引用 安装三个Nancy应用包——Nancy.Hosting.Aspnet;Nancy;Nancy.Viewengines.Razor; 至此,环境已经搭好,上代码(注:必须在项目根目录建立Views文件

简洁的MVC思想框架——Nancy(Session的使用)

前文提到关于Nancy中GET和POST以及外部引用图片,css和JS的文件等操作.今天所讲的是Nancy关于Session相关操作. Session作为web开发中极其重要的一部分,而Nancy中Session的使用方法不同,使用方式与之前MVC等web无差异,但在使用前必须像引用外部css文件和js等文件一样,需要添加一个类.如图: protected override void ApplicationStartup(TinyIoCContainer container, IPipeline

php ci框架中载入css和js文件失败的原因及解决方法

在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用base_url()函数处理外部的链接. 在控制器中须要先加载url相关的类 public function test() { $this->load->helper('url'); $this->load->view('admin/test'); } 在test.php的view视图中.

高效快捷简便易用的基于JSP的框架 MVC+ORM框架- YangMVC

开发目的 @copyright 杨同峰 保留所有权利 本文可以转载,但请保留版权信息 本人高校教师,带着一门动态网站设计课程,前面讲HTML+CSS+DIV,后面将JSP+JDBC+Struts+Hibernate+Spring.对SSH的难用深有体会.从一个空白项目开始配置完SSH,需要20分钟.别吐槽,这还是熟练的情况下...如果你有模板当然binggo就好了.但... 这不是一个框架应该有的样子.框架应该使用简单.配置简单.代码简洁.总之,我思考了一个晚上后决定自己写一个MVC+ORM(数

【UI插件】简单的日历插件(下)—— 学习MVC思想

前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么就应该考虑其它UI库的接入问题 这个意思就是,我们的系统中所有UI插件应该有一些统一行为,我们如果希望统一为所有的插件加一点什么东西,需要有位置可加 这个意味着,可能我们所有的插件需要继承至一个抽象的UI类,并且该类提供了通用的几个事件点 ② 上次做的日历插件虽然说是简单,其耦合还是比较严重的(其实

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这篇博客我们继续来实现我的权限系列,这个博客一段时间也没有写了,重点是我在想还写不写,最终我决定还是写下去,因为我们是为了学习,当别人提出意见的时候,我们可以参考和采纳,但是我们不一定非要采纳,上几篇博客大家都说用CodeFirst来实现,是啊,现在基本很少有人用我的这种方法来实现了,都是用CodeF

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理 前言:上篇博客中我们重新对EF框架实现上下文进行了重新的操作,而且我们也建立了DbSession,使用CallContext