做Net開發時的那段回憶

来源:http://www.cnblogs.com/gdsblog/archive/2017/07/15/7188515.html
-Advertisement-
Play Games

博客里的好多文章都是本人看著比較好,就轉過來的,好少自己親自去寫點什麼,也很少把自己學的一點心得於大家分享,今天特別想聊一下,關於本人做Net開發時的那段回憶! 一、關於知識的回憶 還記得Handlere嗎? 我記得Handler做圖片防盜鏈時,有這麼一個功能! 還記得Module嗎?那時我們做過I ...


博客里的好多文章都是本人看著比較好,就轉過來的,好少自己親自去寫點什麼,也很少把自己學的一點心得於大家分享,今天特別想聊一下,關於本人做Net開發時的那段回憶!






一、關於知識的回憶

還記得Handlere嗎?

我記得Handler做圖片防盜鏈時,有這麼一個功能! 

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

 

還記得Module嗎?那時我們做過IP禁止訪問,也就是可以限制某些IP訪問我們的程式

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

用Module的時候,不知道你記得否了,沒有asp.net mvc 的時候,你是否用Module做過登錄驗證呢?

public  class LoginModule:IHttpModule,System.Web.SessionState.IRequiresSessionState
    {

        public void Dispose()
        {
            throw new NotImplementedException();
        }

        public void Init(HttpApplication context)
        {
           context.AcquireRequestState+=context_AcquireRequestState;
        }

        private void context_AcquireRequestState(object sender, EventArgs e)
        {
            //HttpApplication app = sender as HttpApplication;
            //string url = app.Context.Request.RawUrl;
            //if (url.Contains(".aspx") && !url.Contains("login.aspx")||(url.Contains("ashx")&&!url.Contains("CreateImageCode.ashx")))
            //{
            //    if(app.Context.Session["LoginUser"] ==null)
            //   {
            //    app.Context.Response.Redirect("~/login.aspx");
            //    app.Response.End();
            //   }
            //}
        }

    }
//當然還有同樣的另一種方法

那時候你用過EasyUI吧,你記得EasyUI里哪些東西是你容易忘掉或者入坑的嗎?

//easy ui文檔要好好看吧
//Id ID 你入過坑嗎?
//easy ui的客戶端表單驗證你會嗎?
//知道datagrid列表的選中行ID通過什麼拿到嗎?
//當年老師說你們刪除像這麼玩
dele: function () {

                var rows = $("#datalist").datagrid("getSelections");
                if (rows.length <= 0) {
                    $.messager.alert("提示", "沒有選中的行", "info");
                    return;


                }
                //將選擇到的行存入數組並用,分隔轉換成字元串,
                var ids = [];
                for (var i = 0; i < rows.length; i++) {
                    ids.push(rows[i].ID);
                }
                var idsStr = ids.join(",");
                
              
                //使用jquery和 服務端進行交互 ajax
                $.ajax({

                    url: '../../ashx/DepartmentHandler.ashx',
                    dataType: "text",
                    data: { ids: idsStr,action:"delete" },
                    type: "POST",
                    beforeSend: function () {
                        // 禁用按鈕防止重覆提交
                        $.messager.progress({ title: "執行中", text: "" });

                    },
                    success: function (data) {
                        $("#datalist").datagrid("load", { action: "search" });
                        $.messager.alert("成功",data,"info");
                    },
                    complete: function () {
                        $.messager.progress("close");
                    },
                    error: function () {
                        $.messager.alert("警告",  "對不起,系統出現錯誤,請聯繫管理員!");
                    }



                });

                
            }

當easyUI表單提交時,拿的對錶單的驗證你還記得嗎?

Save: function () {

                var parentId = $("#dptComTree").combotree("getValue");
                var bool = $("#fm").form("validate");
                if (bool) {
                    var data;
                    if (obJdpt.opType == "1") {
                        data = { name: $("#dptdialog input[name='name']").val(), action: "add", pid: parentId };

                    }

                    else {

                        data = { id: $("#dptdialog input[name='id']").val(), name: $("#dptdialog input[name='name']").val(), action: "update", pid: parentId };

                    }
                    $.ajax({

                        url: '../../ashx/DepartmentHandler.ashx',
                        dataType: "json",
                        data: data,
                        type: "POST",
                        beforeSend: function () {
                            // 禁用按鈕防止重覆提交
                            $.messager.progress({ title: "執行中", text: "" });

                        },
                        success: function (data) {
                            //if (obJdpt.state == "1") {
                            //    $("#dptdialog input[name='name']").val(data.data.name);
                            //    $("#dptComTree").combotree("setValue", [{ id: data.data.pid, text: data.data.pname }]);
                            //    $("#dptdialog input[name='id']").val(data.data.id);
                            //}
                            $("#datalist").datagrid("load", { action: "search" });
                            $("dpttree").tree("reload");
                            $.messager.alert("成功", data.msg, "info");
                        },
                        complete: function () {
                            $.messager.progress("close");
                            $("#dptdialog").dialog("close");
                            //清掉表單的值
                            $("#fm").form("reset");

                        },
                        error: function () {
                            $.messager.alert("警告", "對不起,系統出現錯誤,請聯繫管理員!");
                        }



                    });



                }


            }

這裡我想說,在每次添加完數據,要清空數據,這個是不是說了千千萬萬了

complete: function () {
                            $.messager.progress("close");
                            $("#dptdialog").dialog("close");
                            //清掉表單的值
                            $("#fm").form("reset");

                        }

你還記得你們老大叫你做表單驗證嗎?

<div id="dptdialog">
        <form id="fm" method="post">

/*還記得表單里那些low掉牙的隱藏域嗎?**/
<input name="id" type="hidden" /> <div class="dialog-table"> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tk_table"> <tr> <td>上級部門</td> <td class="white-tr"> <input id="dptComTree" type="text" /> </td> </tr> <tr> <td>名稱</td> <td class="white-tr"> <input name="name" id="txtDptName" type="text" class="easyui-validatebox" data-options="required:true" /> </td> </tr> </table> </div> </form> </div>

你還記得那個樹形圖嗎,還記得那個載入樹嗎?

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

好了,這是回憶第一篇章,主要是一些webform配合easyUI的一些小的知識點,接下的文章會涉及到的知識有:asp.net MVC 配合easyUI項目的坑,有BootStrap+HTML+ajax+jq的輕型項目的總結還有關於:菜蟲網電商項目時,遇到的一些坑,比如說發郵件時,郵箱伺服器的坑,這個也就是當時開發忘記密碼遇到的,還有網頁記錄回傳的坑,這些內容下麵的文章都會回憶 到!

本人為了全站之路,現在已經學RN開發許久,喜歡的朋友,請持續關註!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • RedHat yum系統下 防火牆 + 關閉防火牆方法 + 檢測防火牆狀態 + 設置防火牆禁用開機啟動 SELinux + 禁用SELinux + 獲取SELinux狀態 + 永久禁用 設置分區開機自動掛載 此文件存儲開機自動掛載分區 ​ ​ 配置yum源 本地yum源 yum源配置文件地址 個人可 ...
  • Linux系統下安裝rz/sz命令以及使用說明 對於經常使用Linux系統的人員來說,少不了將本地的文件上傳到伺服器或者從伺服器上下載文件到本地,rz / sz命令很方便的幫我們實現了這個功能,但是很多Linux系統初始並沒有這兩個命令。今天,我們就簡單的講解一下如何安裝和使用rz、sz命令。 一、 ...
  • 今天在通過需求表A查詢場地類型表B,然後通過表B的場地類型id去查詢表C場地類型名的時候遇到了一個小的問題。 需求表A的欄位:id、user_id 、name等等; 中間表B的欄位:id、appeal_id、field_type_id; 場地類型表C的欄位:id、display_name等等; Ap ...
  • 最近配置虛擬機的靜態地址,老是記不住步驟,特此記一下,下次直接對照著做就可以啦 ...
  • ———————————————————————————————————————————— 常用庫及部分元件名中英文對照表 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...
  • bash編程也叫shell編程 預定義變數 $? 最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上一個命令正確的執行;如果這個變數返回的值非0(具體是那個數,有命令自己來決定),則證明上一個命令執行不正確。 $$當前進程的進程號(PID) $!後臺運行的最後一個進程的進程號(PID) 運算... ...
  • FPM工具 支持的源類型包 dir 將目錄打包成所需要的類型。可以用於源碼編譯安裝後的軟體包 rpm 對rpm進行轉換 gen 對rubygem包進行轉換 python 將python模塊打包成相應的類型 支持的目標類型包 rpm 轉換成rpm包 deb 轉換成deb包 solaris 轉換成sol ...
  • 剛接觸MVC+EF框架不久,但一直很困惑的就是控制器能否及如何向視圖傳遞匿名類數據。寶寶表示很討厭去新建實體類啦,查詢稍有不同就去建一個實體類不是很麻煩嗎,故趁陽光正好,周末睡到自然醒後起來嘗試了之前一直在博客園看到的實現方式:英明神武的Tuple類,第一次對微軟欽佩之至。故做如下記錄,方便自己之後 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...