在前文《WebApp MVC,“不一样”的轻量级互联网应用程序开发框架》介绍了WebApp MVC的技术实现以及如何使用,而在本章进一步归纳了使用框架开发的一些细节,也给我们在开发具体功能的时候提供一个正确的方法;共归纳了三点,具体内容如下:

1.URL请求页面

1)使用Nvelocity显示页面

2)第一次页面加载中的Jqueryeasyui控件数据特殊处理

2.Form表单提交数据

1)action提交

2)action提交前进行数据验证

3)使用JQueryeasyui的form控件提交

3.Ajax请求Json数据

1)使用JqueryEasyUI控件请求数据

2)使用Jquery中的Ajax方法请求数据

讲解上面三点的同时结合实例代码,我们再回顾一下框架的执行流程图:

实例01:URL请求页面


1)浏览器输入URL:http://localhost:11032/Views/Test/API.aspx?cmd=test_test01

2)TestController控制器代码

public class TestController : AbstractJQBEController
{
public void test01()
{
ViewResult = ToView(@"Views\Test\test01.htm");
}
}

3)Views\Test\test01.htm页面代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
</head>
<body>
<p>实例01:URL请求页面</p>
<p>hello world!</p>
</body>
</html>

界面效果

通过上面代码开发一个页面需要经过两步,Controller文件编写和View文件编写;首先编写一个控制器接收URL的请求,然后通过控制器中的ToView(@"Views\Test\test01.htm")方法返回View文件test01.htm ,而为什么ToView方法能够讲View页面现在出来使用了视图引擎Nvelocity,所以本节的内容是“使用Nvelocity显示页面”;接着我们看怎么动态数据显示在页面上。

1)浏览器输入URL:http://localhost:11032/Views/Test/API.aspx?cmd=test_test01

2)TestController控制器代码

public class TestController : AbstractJQBEController
{
public void test01()
{
List<object> data = new List<object>();
data.Add(new { id = , name = "选项1" });
data.Add(new { id = , name = "选项2" });
data.Add(new { id = , name = "选项3" });
data.Add(new { id = , name = "选项4" });
data.Add(new { id = , name = "选项5" }); ViewData.Add("combox_data", ToJson(data)); ViewResult = ToView(@"Views\Test\test01.htm");
}
}

3)Views\Test\test01.htm页面代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title> <script src="../../WebPlugin/jquery-1.8.0.min.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="../../WebPlugin/jquery-easyui-1.4.1/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="../../WebPlugin/jquery-easyui-1.4.1/themes/icon.css">
<script src="../../WebPlugin/jquery-easyui-1.4.1/jquery.easyui.min.js" type="text/javascript"></script>
<script src="../../../WebPlugin/jquery-easyui-1.4.1/locale/easyui-lang-zh_CN.js" type="text/javascript"></script> </head>
<body>
<p>实例01:URL请求页面</p>
<p>hello world!</p> <script language="javascript">
var v_data=$combox_data;
</script>
<p><input class="easyui-combobox" id="cb01" name="cc1" data-options="valueField:'id',textField:'name',data:v_data" style="width:200px;"></input></p> </body>
</html>

4)右键查看页面源代码

实例02:Form表单提交数据


1.通过表单的action提交数据

1)浏览器输入URL:http://localhost:11032/Views/Test/API.aspx?cmd=test_test02

2)TestController控制器代码

public void test02()
{
ViewResult = ToView(@"Views\Test\test02.htm");
} public void test02_login()
{
string name= FormData["name"];
string pass = FormData["pass"];
ViewData.Add("name", name);
ViewData.Add("pass", pass); ViewResult = ToView(@"Views\Test\test02_loginsuccess.htm");
}

3)界面代码

Test02.htm

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script src="../../WebPlugin/jquery-1.8.0.min.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="../../WebPlugin/jquery-easyui-1.4.1/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="../../WebPlugin/jquery-easyui-1.4.1/themes/icon.css">
<script src="../../WebPlugin/jquery-easyui-1.4.1/jquery.easyui.min.js" type="text/javascript"></script>
<script src="../../../WebPlugin/jquery-easyui-1.4.1/locale/easyui-lang-zh_CN.js" type="text/javascript"></script> <script src="../../../WebPlugin/JQueryCommon2.5.js" type="text/javascript"></script>
</head>
<body>
<p>实例02:Form表单提交数据</p>
<form id="loginform" method="post" action="API.aspx?cmd=test_test02login">
<p>用户名:<input id="name" name="name" type="text" /></p>
<p>密码:<input id="pass" name="pass" type="text" /></p>
<input id="submit1" type="submit" value="登录" />
</form> <script src="test.js" type="text/javascript"></script>
</body>
</html>
//test02_loginsuccess.htm
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
</head>
<body>
<p>登录成功!</p>
<p>用户名:$name</p>
<p>密码:$pass</p>
</body>
</html>

4)界面效果

2.action提交前进行数据验证

比如:登录前验证用户名密码不能为空

1)修改test02.htm

<form id="loginform" method="post" action="API.aspx?cmd=test_test02login" onsubmit="check();">

2)javascript脚本增加check()方法

function check(){
if($('#name').text()==""){
alert("用户名不能为空!");
return false;
} if($('#pass').text()==""){
alert("密码不能为空!");
return false;
} return true;
}

3.使用Jqueryeasyui的form控件提交,相当于使用ajax提交数据

function login(){
formSubmit('#loginform',{cmd:'API.aspx?cmd=test_test02login'},function(ret){
window.location.href = "API.aspx?cmd=test_loginsuccess";
});
}

实例03:Ajax请求Json数据


1.控制器代码

public void test03()
{
ViewResult = ToView(@"Views\Test\test03.htm");
} public void test03_ajaxdata()
{
List<object> data = new List<object>();
data.Add(new { id = , name = "选项1" });
data.Add(new { id = , name = "选项2" });
data.Add(new { id = , name = "选项3" });
data.Add(new { id = , name = "选项4" });
data.Add(new { id = , name = "选项5" }); JsonResult = ToJson(data);
}

2.界面代码

<body>
<p>实例03:JqueryEasyUI控件请求数据</p>
<p><input class="easyui-combobox" id="cb01" name="cc1" data-options="valueField:'id',textField:'name',url:'API.aspx?cmd=test_test03ajaxdata'" style="width:200px;"></input></p> <p><input class="easyui-combobox" id="cb02" name="cc2" data-options="valueField:'id',textField:'name'" style="width:200px;"></input></p> <script src="test.js" type="text/javascript"></script>
<script language="javascript">
$(cbLoadData);
</script>
</body>

3.脚本代码

function cbLoadData(){
simpleAjax({cmd:"test_test03ajaxdata"},{},function(ret){
$('#cb02').combobox('loadData',ret);
});
}

4.界面效果

WebApp MVC 框架的开发细节归纳的更多相关文章

  1. 使用.NET MVC框架项目开发流程(项目开发流程)

    MVC项目开发流程 整理需求,进行需求分析.项目设计. 整理数据项,建数据库做前期准备,并整理字典. 建立所需数据库表和视图和模型. 页面实现其初步功能(跳过逻辑后台代码),只是实现页面之间的跳转以及 ...

  2. 轻量级MVC框架(自行开发)

    源码及demo: https://github.com/killallspree/myFrame/

  3. ASP.NET MVC框架开发系列课程 (webcast视频下载)

    课程讲师: 赵劼 MSDN特邀讲师 赵劼(网名“老赵”.英文名“Jeffrey Zhao”,技术博客为http://jeffreyzhao.cnblogs.com),微软最有价值专家(ASP.NET ...

  4. 自定义MVC框架

    我们在学习自定义MVC框架的时候常常会听到Model1 ,Model2和MVC.那么什么是Model1 什么是Model2什么又是MVC呢? 什么是Model1? Model1就是一种纯jsp开发技术 ...

  5. 自定义MVC框架之工具类-分页类的封装

    以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前 ...

  6. 源码分析系列 | 从零开始写MVC框架

    1. 前言 2. 为什么要自己手写框架 3. 简单MVC框架设计思路 4. 课程目标 5. 编码实战 5.1 配置阶段 web.xml配置 config.properties 自定义注解 5.2 初始 ...

  7. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  8. Web前端MVC框架的意义分析

    前言: Web前端开发是Web技术发展中的一个重要组成部分,在传统的前端开发中由于外界因素的影响导致其开发形式呈现出简单化的特点,即以页面为主体来展示界面中的信息.然而随着科学技术的不断进步,Web前 ...

  9. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

随机推荐

  1. pl/sql死锁oracle

    http://jingyan.baidu.com/album/3ea51489eb65b152e61bba8b.html?picindex=2

  2. 地图源改变之后mxd文件打开很慢的问题

    在使用ArcGIS开发电子地图程序时,有时候需要更换服务器地址,这时打开MXD文件就会非常慢,一直没有找到有效的方法,下面是从网上搜到的方法,还没有验证,下次再碰到这个问题的时候,验证一下: (以下方 ...

  3. 24单行插入与批量插入-insert(必学)-天轰穿sqlserver视频教程

    大纲:insert语句,简单插入数据与批量插入数据 为了冲优酷的访问量,所以这里只放优酷的地址了,其实其他网站还是都传了的哈. 代码下载http://www.cnthc.com/?/article/1 ...

  4. 通过boundingRectWithSize:options:attributes:context:计算文本尺寸

    转:http://blog.csdn.net/iunion/article/details/12185077   之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用 ...

  5. 关于C# byte[]与struct的转换

    转自:http://blog.chinaunix.net/uid-215617-id-2213082.html Some of the C# code I've been writing recent ...

  6. React学习资料

    以下是我整理的React学习资料,包括:React基础.Redux.reat-router, redux middleware, higher order components, React验证等, ...

  7. 解决连接MySql速度慢的方法

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢.解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve. 原因是 ...

  8. Asp.net WebAPI 单元测试

    现在Asp.net webapi 运用的越来越多,其单元而是也越来越重要.一般软件开发都是多层结构,上层调用下层的接口,而各层的实现人员不同,一般大家都只写自己对应单元测试.对下层的依赖我们通过IOC ...

  9. 用DOS批处理实现FTP自动上传、下载、清理文件

    用DOS批处理实现FTP自动上传.下载.清理文件 最近好像特别的忙,好久没来写点东西了,今天写了一个利用批处理程序完成FTP自动上传.下载.清理文件的程序.赶紧 记录下来,以备日后之用.功能介绍:自动 ...

  10. C++ 记事本: 从历史说起

    C 的简史 在谈论 C++ 的历史那么必须先得了解 C 的历史,那么我们先来看一段来自于 <<C专家编程>> 对 C 语言史前阶段的简单阐述: Ken Thompson(左), ...