導航:首頁 > 凈水問答 > routedata過濾

routedata過濾

發布時間:2022-06-16 08:21:24

Ⅰ 愛上MVC3系列~同步與非同步提交,在過濾器里如何進行重定向~續

時候給勤奮者留下串串的果實,而給懶漢只留下一頭白發和空空的雙手。上一篇文章已經解決了同步與非同步表單提交的頁面重定向題目,而為什麼要寫個「續」呢,原因是,我感覺前次的代碼不敷秀麗,並且有些煩瑣,也不合適我的代碼之美原則,所以,我本身的代碼進行了一次重構:凡過於把榮幸之事歸功於本身的聰慧和聰明的人多半終局是不幸的。兩件事:同步表單,返回view或者partialview時,事實上返回的是一個text/html格局的視圖非同步表單,返回Json,text,xml,javascript時,事實上返回的是一個text/javascript格局的視圖有了上方的根蒂根基,我們把代碼重構一下吧: 1/// 2/// 角色過濾器 3/// 4publicclass RoleFilter : AuthorizeAttribute 5 { 6conststring USER_WARN = "您必須先登岸才幹履行本操縱"; 7conststring WORKSHOPUSER_WARN = "必須是本工作室的用戶才幹履行本操縱"; 8conststring WORKSHOPTEACHER_WARN = "必須是本工作室的教員才幹履行本操縱"; 9 RoleFlag _RoleFlag; 10///11/// 角色過濾器機關依法 12///13///角色類型14public RoleFilter(RoleFlag roleFlag) 15 { 16 _RoleFlag = roleFlag; 17 } 18publicoverridevoid OnAuthorization(AuthorizationContext filterContext) 19 { 20var userID = filterContext.RequestContext.HttpContext.Session["UserID"]; 21var request = filterContext.RequestContext.HttpContext.Request; 22var routeData = filterContext.RequestContext.RouteData.Values["id"]; 23//同步體式格式24string htmlMsg = @" 25 26 27 28 29 30 ¥(function(){ 31 alertHrefFun(""msg"",""url"");});"; 32//非同步體式格式33string jsMsg = @"alertHrefFun(""msg"",""url"");"; 3435switch(this._RoleFlag) 36 { 37case RoleFlag.User: 38if(userID == null || Convert.ToInt32(userID)

Ⅱ 愛上MVC3系列~同步與非同步提交,在過濾器里如何進行重定向

今天主要的問題是,在MVC的Fitler中,如何實現同步提交的Action與非同步提交的Action在Filter中的URL重定向問題,舉個例子,比如:一個訪客身份,它可以看一些貼子,新聞,但如果它希望回復新聞貼子的時間,則必須提示叫它去登陸,對於這個回復表單事實就是一個POST操作,而如何去提交這個POST操作就是我們說的「提交方式」,同步與非同步,而要在POST方法上加個過濾器以驗證用戶是否登陸過,如果登陸成功,則操作繼續進行,如果沒有登陸,則實現URL的重定向,進入登陸頁。操作流程:---------------------------------------------------------------------------------用戶查新聞 |希望評論新聞 | ---N 提交用戶去登陸 | Y 評論成功----------------------------------------------------------------------------------這個流程已經足夠清晰了,現在我們去實現它吧,我不希望把這種驗證邏輯寫在代碼里,原因一,重復代碼高原因二,重復代碼多後,使代碼的可維護性降低原因三,代碼臃腫,不美觀,這不符合我的「代碼之美,代碼藝術」的原則原因四,使頁面邏輯過於復雜引入過濾器授權過濾器可以繼承自AuthorizeAttribute類,我們通常去復寫它的OnAuthorization方法,將要進行驗證的邏輯寫在方法里,而filterContext就是當然WEB請求的上下文,如果希望得到當前頁面的Request,Response,HttpContext,RouteData等信息,可以通過它得到。下面給出非同步POST與同步POST驗證並重定向的代碼: 1 if (userID == null || Convert.ToInt32(userID)

Ⅲ 愛上MVC3系列~同步與非同步提交,在過濾器里如何進行重定向

今天主要的問題是,在MVC的Fitler中,如何實現同步提交的Action與非同步提交的Action在Filter中的URL重定向問題,舉個例子,比如:一個訪客身份,它可以看一些貼子,新聞,但如果它希望回復新聞貼子的時間,則必須提示叫它去登陸,對於這個回復表單事實就是一個POST操作,而如何去提交這個POST操作就是我們說的「提交方式」,同步與非同步,而要在POST方法上加個過濾器以驗證用戶是否登陸過,如果登陸成功,則操作繼續進行,如果沒有登陸,則實現URL的重定向,進入登陸頁。操作流程:---------------------------------------------------------------------------------用戶查新聞 |希望評論新聞 |<是否登陸> ---N 提交用戶去登陸 | Y 評論成功----------------------------------------------------------------------------------這個流程已經足夠清晰了,現在我們去實現它吧,我不希望把這種驗證邏輯寫在代碼里,原因一,重復代碼高原因二,重復代碼多後,使代碼的可維護性降低原因三,代碼臃腫,不美觀,這不符合我的「代碼之美,代碼藝術」的原則原因四,使頁面邏輯過於復雜引入過濾器授權過濾器可以繼承自AuthorizeAttribute類,我們通常去復寫它的OnAuthorization方法,將要進行驗證的邏輯寫在方法里,而filterContext就是當然WEB請求的上下文,如果希望得到當前頁面的Request,Response,HttpContext,RouteData等信息,可以通過它得到。下面給出非同步POST與同步POST驗證並重定向的代碼: 1 if (userID == null || Convert.ToInt32(userID) <= 0) 2 { 3 if (request.IsAjaxRequest()) 4 { 5 filterContext.Result = new ContentResult() 6 { 7 Content = ajaxMsg.Replace("msg", USER_WARN).Replace("url", request.UrlReferrer.ToString()), 8 ContentType = "text/javascript", 9 };10 }11 else12 {13 filterContext.RequestContext.HttpContext.Response.Clear();14 filterContext.HttpContext.Response.Write(_RedirectJSString.Replace("msg", USER_WARN).Replace("url", request.UrlReferrer.ToString()));15 }16 17 }注意,對於非同步POST,在Controller里一般都是返回JsonResult或者ContentResult,所以我們必須也要返回一個Javascript的上下文,這樣才能使我們的JS腳本執行,而對於同步提交,我們要返回一個HTML頁面。如果大家對JS非同步與同步提交不清楚,可以參考下面代碼: 1 //非同步提交 2 $.ajax({ 3 type: "Post", 4 url: "/common/review", 5 success: function (data) { 6 alert(data.res); 7 } 8 }); 9 10 //同步提交11 $("form").submit();感謝您的閱讀!代碼改變生活!

閱讀全文

與routedata過濾相關的資料

熱點內容
污水凈化有哪些風險 瀏覽:341
水垢大軟管硬管淋浴 瀏覽:59
達州本地抽污水多少錢 瀏覽:395
熱水器的水垢去除方法 瀏覽:597
便池除垢劑能否澆花 瀏覽:896
凈水器的塑料是什麼材質 瀏覽:202
怡口的前置凈水器怎麼樣 瀏覽:73
濟南水晶水處理有限公司 瀏覽:109
過濾器燙手冰櫃不凍 瀏覽:483
艾美特1103飲水機多少錢 瀏覽:313
客廳飲水機壁掛預留在什麼位置好 瀏覽:188
海口市農村生活污水處理 瀏覽:629
小松液壓泵提升拆解視頻 瀏覽:734
什麼牌子空調空氣濾芯好 瀏覽:507
標志4008燃油濾芯在哪裡的 瀏覽:173
反滲透膜能完全除染料色嗎 瀏覽:739
創造與魔法樹脂bug 瀏覽:592
污水處理中大於1微米的過濾膜 瀏覽:686
碧然德即熱飲水機濾芯如何更換 瀏覽:694
空氣濾芯k2448什麼車輛使用 瀏覽:914