首页 > 代码库 > WebApp MVC 框架的开发细节归纳
WebApp MVC 框架的开发细节归纳
在前文《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 = http://www.mamicode.com/new List<object>(); data.Add(new { id = 1, name = "选项1" }); data.Add(new { id = 2, name = "选项2" }); data.Add(new { id = 3, name = "选项3" }); data.Add(new { id = 4, name = "选项4" }); data.Add(new { id = 5, 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 = http://www.mamicode.com/new List<object>(); data.Add(new { id = 1, name = "选项1" }); data.Add(new { id = 2, name = "选项2" }); data.Add(new { id = 3, name = "选项3" }); data.Add(new { id = 4, name = "选项4" }); data.Add(new { id = 5, 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 框架的开发细节归纳