激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)

asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)

2020-01-02 13:48程序詩(shī)人 ASP.NET教程

這篇文章主要介紹了MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法,結(jié)合實(shí)例形式詳細(xì)分析了自定義ModelBinder過(guò)濾關(guān)鍵字的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法。分享給大家供大家參考,具體如下:

前面一篇主要講解了如何利用ActionFilter過(guò)濾關(guān)鍵字,這篇主要講解如何利用自己打造的ModelBinder來(lái)過(guò)濾關(guān)鍵字。

首先,我們還是利用上一篇《asp.net MVC利用ActionFilterAttribute過(guò)濾關(guān)鍵字的方法》中的實(shí)體類,但是我們需要加上DataType特性,以便于我們構(gòu)造的ModelBinder通過(guò)DataTypeName識(shí)別出來(lái):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
 
namespace MvcApplication1.Models
{
   public class TestModel
   {
     public int TID { get; set; }
  
     [DataType("TName")]
     public string TName { get; set; }
  
     [DataType("TSite")]
     public string TSite { get; set; }
   }
}

然后我們新建一個(gè)FilterModelBinder的類,其中內(nèi)容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
namespace MvcApplication1
{
   public class FilterModelBinder:DefaultModelBinder
   {
     public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
     {
       var valueShouldFilter = bindingContext.ModelMetadata.DataTypeName;
       if (valueShouldFilter == "TName" || valueShouldFilter == "TSite")
       {
         var resultProvider = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
         if (resultProvider != null)
         {
           string result = resultProvider.AttemptedValue;
           result = result.Replace("<", "<").Replace(">", ">");
           return result;
         }
       }
  
       return base.BindModel(controllerContext, bindingContext);
     }
   }
}

第13行,主要是獲取我們需要驗(yàn)證的DataTypeName.

第15行,獲取需要驗(yàn)證的值,然后替換,最后返回即可.

 上面做完后,在Global.asax中,我們需要指定一下:

?
1
2
3
4
5
6
7
8
9
10
11
protected void Application_Start()
{
   AreaRegistration.RegisterAllAreas();
 
   WebApiConfig.Register(GlobalConfiguration.Configuration);
   FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
   RouteConfig.RegisterRoutes(RouteTable.Routes);
   BundleConfig.RegisterBundles(BundleTable.Bundles);
 
   ModelBinders.Binders.DefaultBinder = new FilterModelBinder();
}

這樣,我們就能使用我們自己的ModelBinder了,下面開始測(cè)試:

asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)

我們輸入的內(nèi)容如上圖所示,當(dāng)點(diǎn)擊”添加”按鈕的時(shí)候,確彈出如下的錯(cuò)誤提示:

asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)

看來(lái),系統(tǒng)會(huì)自動(dòng)檢測(cè)我們的輸入值,發(fā)現(xiàn)有非法字符,會(huì)彈出錯(cuò)誤提示,還好我們可以通過(guò)web.config配置一下,讓其通過(guò)驗(yàn)證:

打開最外層的Web.config,輸入以下節(jié)點(diǎn):

?
1
2
3
4
5
6
7
<configuration>
  <system.web>
  <httpRuntime requestValidationMode="2.0" />
  </system.web>
  <pages validateRequest="false">
  </pages>
</configuration>

然后保存,運(yùn)行,我們看到,系統(tǒng)成功跑了起來(lái),最后的結(jié)果如下:

asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)

我們可以看到,通過(guò)我們自定義的ModelBinder,系統(tǒng)自動(dòng)將非法字符進(jìn)行了替換,非常方便。

MVC中處處AOP,現(xiàn)在我們就可以利用現(xiàn)有的知識(shí)做一個(gè)全局過(guò)濾器了。是不是感覺(jué)很方便呢?

完整實(shí)例代碼點(diǎn)擊此處本站下載。

希望本文所述對(duì)大家asp.net程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色电影免费提供 | 蜜桃网在线观看 | 成人一级在线 | 亚洲91网站 | 亚洲精品欧美二区三区中文字幕 | av噜噜在线 | gril hd| 成人偷拍片视频在线观看 | 一级看片免费视频 | 伊人二本二区 | 欧美视频网 | 一区二区久久精品66国产精品 | 国产精品99免费视频 | 99在线在线视频免费视频观看 | 日本不卡一区二区在线观看 | 久久久精品视频在线观看 | 日本免费一区二区三区四区 | 久久久久久久久久久久99 | 欧美18—19sex性护士中国 | 日本羞羞的午夜电视剧 | 91一级毛片 | 九九热在线视频观看 | 欧美亚洲啪啪 | 欧美成人精品一区二区男人小说 | 91短视频版高清在线观看免费 | 精品一区二区三区毛片 | 色女孩网 | 福利一区二区三区视频在线观看 | 国产精品久久久久久久久久尿 | 欧美一级淫片a免费播放口 九九视频精品在线 | 国产成人自拍视频在线观看 | 日本aaaa片毛片免费观蜜桃 | 国产精品一区二区x88av | 久久午夜神器 | wankz100%videos| 成人三级视频网站 | 久久久久久久亚洲精品 | 成人在线视频黄色 | 黄色免费大片 | 欧美精品一区自拍a毛片在线视频 | 国产呦在线观看视频 |