博客里的好多文章都是本人看着比较好,就转过来的,好少自己亲自去写点什么,也很少把自己学的一点心得于大家分享,今天特别想聊一下,关于本人做Net开发时的那段回忆!





一、关于知识的回忆

还记得Handlere吗?

我记得Handler做图片防盗链时,有这么一个功能!

 
  1. 1 public class ImgHandlerTest: IHttpHandler
  2. 2 {
  3. 3 public void ProcessRequest(HttpContext context)
  4. 4 {
  5. 5 Uri url = context.Request.UrlReferrer;//从哪个地址过来的
  6. 6 if (url == null)
  7. 7 {
  8. 8 context.Response.End();
  9. 9
  10. 10 }
  11. 11 if (url.Host.ToString().Contains(".oa.com"))
  12. 12 {
  13. 13 context.Response.WriteFile(context.Request.FilePath);
  14. 14 }
  15. 15 else
  16. 16 {
  17. 17 context.Response.End();
  18. 18
  19. 19 }
  20. 20 context.Response.End();
  21. 21 }
  22. 22 public bool IsReusable
  23. 23 {
  24. 24 get { return true; }
  25. 25 }
  26. 26 }
 

还记得Module吗?那时我们做过IP禁止访问,也就是可以限制某些IP访问我们的程序

 
  1. 1 public class IpTestModule:IHttpModule
  2. 2 {
  3. 3
  4. 4 public void Init(HttpApplication context)
  5. 5 {
  6. 6 context.BeginRequest += context_BeginRequest;
  7. 7 }
  8. 8
  9. 9 void context_BeginRequest(object sender, EventArgs e)
  10. 10 {
  11. 11 //string ip = Common.CommonFun.GetIP();
  12. 12 //if (ip == "127.0.0.1")
  13. 13 //{
  14. 14 // HttpApplication app = sender as HttpApplication;
  15. 15 // app.Context.Response.End();
  16. 16 //}
  17. 17 }
  18. 18 public void Dispose()
  19. 19 {
  20. 20
  21. 21 }
  22. 22 }
 

用Module的时候,不知道你记得否了,没有asp.net mvc 的时候,你是否用Module做过登录验证呢?

 
  1. public class LoginModule:IHttpModule,System.Web.SessionState.IRequiresSessionState
  2. {
  3.  
  4. public void Dispose()
  5. {
  6. throw new NotImplementedException();
  7. }
  8.  
  9. public void Init(HttpApplication context)
  10. {
  11. context.AcquireRequestState+=context_AcquireRequestState;
  12. }
  13.  
  14. private void context_AcquireRequestState(object sender, EventArgs e)
  15. {
  16. //HttpApplication app = sender as HttpApplication;
  17. //string url = app.Context.Request.RawUrl;
  18. //if (url.Contains(".aspx") && !url.Contains("login.aspx")||(url.Contains("ashx")&&!url.Contains("CreateImageCode.ashx")))
  19. //{
  20. // if(app.Context.Session["LoginUser"] ==null)
  21. // {
  22. // app.Context.Response.Redirect("~/login.aspx");
  23. // app.Response.End();
  24. // }
  25. //}
  26. }
  27.  
  28. }
  29. //当然还有同样的另一种方法
 

那时候你用过EasyUI吧,你记得EasyUI里哪些东西是你容易忘掉或者入坑的吗?

 
  1. //easy ui文档要好好看吧
  2. //Id ID 你入过坑吗?
  3. //easy ui的客户端表单验证你会吗?
  4. //知道datagrid列表的选中行ID通过什么拿到吗?
  5. //当年老师说你们删除像这么玩
  6. dele: function () {
  7.  
  8. var rows = $("#datalist").datagrid("getSelections");
  9. if (rows.length <= 0) {
  10. $.messager.alert("提示", "没有选中的行", "info");
  11. return;
  12.  
  13. }
  14. //将选择到的行存入数组并用,分隔转换成字符串,
  15. var ids = [];
  16. for (var i = 0; i < rows.length; i++) {
  17. ids.push(rows[i].ID);
  18. }
  19. var idsStr = ids.join(",");
  20.  
  21. //使用jquery和 服务端进行交互 ajax
  22. $.ajax({
  23.  
  24. url: '../../ashx/DepartmentHandler.ashx',
  25. dataType: "text",
  26. data: { ids: idsStr,action:"delete" },
  27. type: "POST",
  28. beforeSend: function () {
  29. // 禁用按钮防止重复提交
  30. $.messager.progress({ title: "执行中", text: "" });
  31.  
  32. },
  33. success: function (data) {
  34. $("#datalist").datagrid("load", { action: "search" });
  35. $.messager.alert("成功",data,"info");
  36. },
  37. complete: function () {
  38. $.messager.progress("close");
  39. },
  40. error: function () {
  41. $.messager.alert("警告", "对不起,系统出现错误,请联系管理员!");
  42. }
  43.  
  44. });
  45.  
  46. }
 

当easyUI表单提交时,拿的对表单的验证你还记得吗?

 
  1. Save: function () {
  2.  
  3. var parentId = $("#dptComTree").combotree("getValue");
  4. var bool = $("#fm").form("validate");
  5. if (bool) {
  6. var data;
  7. if (obJdpt.opType == "1") {
  8. data = { name: $("#dptdialog input[name='name']").val(), action: "add", pid: parentId };
  9.  
  10. }
  11.  
  12. else {
  13.  
  14. data = { id: $("#dptdialog input[name='id']").val(), name: $("#dptdialog input[name='name']").val(), action: "update", pid: parentId };
  15.  
  16. }
  17. $.ajax({
  18.  
  19. url: '../../ashx/DepartmentHandler.ashx',
  20. dataType: "json",
  21. data: data,
  22. type: "POST",
  23. beforeSend: function () {
  24. // 禁用按钮防止重复提交
  25. $.messager.progress({ title: "执行中", text: "" });
  26.  
  27. },
  28. success: function (data) {
  29. //if (obJdpt.state == "1") {
  30. // $("#dptdialog input[name='name']").val(data.data.name);
  31. // $("#dptComTree").combotree("setValue", [{ id: data.data.pid, text: data.data.pname }]);
  32. // $("#dptdialog input[name='id']").val(data.data.id);
  33. //}
  34. $("#datalist").datagrid("load", { action: "search" });
  35. $("dpttree").tree("reload");
  36. $.messager.alert("成功", data.msg, "info");
  37. },
  38. complete: function () {
  39. $.messager.progress("close");
  40. $("#dptdialog").dialog("close");
  41. //清掉表单的值
  42. $("#fm").form("reset");
  43.  
  44. },
  45. error: function () {
  46. $.messager.alert("警告", "对不起,系统出现错误,请联系管理员!");
  47. }
  48.  
  49. });
  50.  
  51. }
  52.  
  53. }
 

这里我想说,在每次添加完数据,要清空数据,这个是不是说了千千万万了

 
  1. complete: function () {
  2. $.messager.progress("close");
  3. $("#dptdialog").dialog("close");
  4. //清掉表单的值
  5. $("#fm").form("reset");
  6.  
  7. }
 

你还记得你们老大叫你做表单验证吗?

 
  1. <div id="dptdialog">
  2. <form id="fm" method="post">
  3.  
  4. /*还记得表单里那些low掉牙的隐藏域吗?**/
  5. <input name="id" type="hidden" />
  6. <div class="dialog-table">
  7.  
  8. <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tk_table">
  9.  
  10. <tr>
  11. <td>上级部门</td>
  12. <td class="white-tr">
  13. <input id="dptComTree" type="text" />
  14. </td>
  15.  
  16. </tr>
  17. <tr>
  18. <td>名称</td>
  19. <td class="white-tr">
  20. <input name="name" id="txtDptName" type="text" class="easyui-validatebox" data-options="required:true" />
  21. </td>
  22. </tr>
  23. </table>
  24. </div>
  25. </form>
  26. </div>

你还记得那个树形图吗,还记得那个加载树吗?

  1. $("#dptComTree").combotree("setValue", [{ id: obJdpt.pid, text: obJdpt.ptext }]);
  2. var parentId = $("#dptComTree").combotree("getValue");
  3. $("#txtDptName").focus();

好了,这是回忆第一篇章,主要是一些webform配合easyUI的一些小的知识点,接下的文章会涉及到的知识有:asp.net MVC 配合easyUI项目的坑,有BootStrap+HTML+ajax+jq的轻型项目的总结还有关于:菜虫网电商项目时,遇到的一些坑,比如说发邮件时,邮箱服务器的坑,这个也就是当时开发忘记密码遇到的,还有网页记录回传的坑,这些内容下面的文章都会回忆 到!

【.Net】Net开发的更多相关文章

  1. 避免重复造轮子的UI自动化测试框架开发

    一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

  2. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  3. 使用HTML5开发Kinect体感游戏

    一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...

  4. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  5. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  6. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  7. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  8. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  9. 读书笔记:《HTML5开发手册》--HTML5新的结构元素

    读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...

  10. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

随机推荐

  1. 浅入tcp

    1.认识TCP tcp协议是传输层协议,它的最主要的3个特点是面向连接.可靠保证.基于字节流.当应用层把数据给tcp层时,注意如果数据大于MSS是要在tcp层进行分段的.tcp协议为了保证不丢包会给每 ...

  2. win10 64位redis的安装和测试

    步骤记录: 1.官网没有redis64位的版本,在git开源项目上找到64位的可用版本 https://www.cnblogs.com/tommy-huang/p/6093813.html 这里有下载 ...

  3. kali2.0下JAVA安装

    参考网址:http://www.blackmoreops.com/2013/10/26/how-to-install-java-jdk-in-kali-linux/ 1.下载javase,http:/ ...

  4. 二、Web框架实现

    一.简单web(socket) 在前一篇WEB框架概述一文中已经详细了解了:从浏览器键入一个URL到返回HTML内容的整个过程.说到底,本质上其实就是一个socket服务端,用户的浏览器其实就是一个s ...

  5. vscode eslint格式化配置

    { // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize &qu ...

  6. Android 7.1.1系统源码下载、编译、刷机-Nexus 6实战

    想成为一位合格的Android程序员或者一位Android高级工程师是十分有必要知道Android的框架层的工作原理,要知道其工作原理那么就需要阅读Android的源代码. 想要阅读Android的源 ...

  7. IIC通讯程序

    IIC程序 IIC起始信号 void IIC_Start(void) { SDA_OUT();//sda设为输出 IIC_SDA=; IIC_SCL=; delay_us();//延时一段时间,具体时 ...

  8. ddms+adt+jdk的安装及调试开发安卓

    _______ ddms+adt+jdk的安装及调试开发安卓 目录 阐述 1 1  jdk安装 1 2  sdk安装 3 3  Eclipse安装 6 4  ADT安装 10 5  Ddms使用 16 ...

  9. spring cloud 入门系列七:基于Git存储的分布式配置中心--Spring Cloud Config

    我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...

  10. dotnet服务器端框架从精通到弃坑

    当你们看到这篇经验分享的时候,我已经把服务器端主要力量转到JAVA了. 纯当留念. 另外里面实现oauth2.0的部分就不写了,因为特殊性太强,完全根据自家需求结合它的理念改写的. 为什么我会选择sp ...