NopCommerce架構(gòu)分析之(五)Model綁定Action參數(shù)
asp.net MVC中Action參數(shù)不只是一些基本類型,也支持實(shí)體參數(shù)。那么從客戶端傳來的數(shù)據(jù)如何映射或轉(zhuǎn)換成實(shí)體對象呢?就是通過實(shí)體綁定類ModelBinder。此系列類在請求轉(zhuǎn)化為后臺Controller的Action方法前,捕獲傳遞過來的數(shù)據(jù),并對其進(jìn)行解析和轉(zhuǎn)換,最終為實(shí)體類對象。
在系統(tǒng)啟動前,Global.asax.cs中的方法Application_Start方法調(diào)用下面代碼定義參數(shù)轉(zhuǎn)換規(guī)則。
//model binders ModelBinders.Binders.Add(typeof(BaseNopModel), new NopModelBinder());
NopModelBinder繼承DefaultModelBinder承擔(dān)系統(tǒng)的實(shí)體綁定類,但好像只是留一個接口,并沒有使用。主要是繼承父類的方法,稍有改變的地方是:方法BindModel添加了對NopModel的綁定支持。
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var model = base.BindModel(controllerContext, bindingContext); if (model is BaseNopModel) ((BaseNopModel) model).BindModel(controllerContext, bindingContext); return model; }
方法GetModelProperties添加了一個過濾方法,只是此方法尚未啟用。
類BaseNopModel是所有Model的基類,支持對自定義屬性的存儲。并且有一個綁定到解析器的方法BindModel,只是尚未發(fā)現(xiàn)有子類實(shí)現(xiàn)此方法。
- NopCommerce架構(gòu)分析之(八)多語言支持
- NopCommerce架構(gòu)分析之(七)主題Theme皮膚管理器
- NopCommerce架構(gòu)分析之(六)自定義RazorViewEngine和WebViewPage
- NopCommerce架構(gòu)分析之(四)基于路由實(shí)現(xiàn)靈活的插件機(jī)制
- NopCommerce架構(gòu)分析之(三)EntityFramework數(shù)據(jù)庫初試化及數(shù)據(jù)操作
- NopCommerce架構(gòu)分析(一)Autofac依賴注入類生成容器
- 使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能
- 基于nopCommerce的開發(fā)框架 附源碼
相關(guān)文章
在ASP.NET 2.0中操作數(shù)據(jù)之十二:在GridView控件中使用TemplateField
本文主要講解在GridView控件中如何使用TemplateField,從而更加高級的自定義GridView,實(shí)現(xiàn)自定義列表的功能。2016-05-05解讀ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
這篇文章主要介紹了ASP.NET 5中全局導(dǎo)入、獲取IP相關(guān)信息、文件上傳等其他新特性,需要的朋友可以參考下2016-06-06在ASP.NET 2.0中操作數(shù)據(jù)之六十三:GridView實(shí)現(xiàn)批量刪除數(shù)據(jù)
本文主要介紹在GridView控件中包含一個checkbox列來實(shí)現(xiàn)復(fù)選多條數(shù)據(jù),在批量刪除按鈕的事件中通過for循環(huán)來一一刪除。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)
上篇已經(jīng)介紹了DropDownList隱式使用ViewState,本文主要介紹詳細(xì)介紹直接使用ViewState存儲排序的條件,并配合上一頁、下一頁按鈕,實(shí)現(xiàn)DataList和Repeater自定義排序的功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之五十六:使用ObjectDataSource緩存數(shù)據(jù)
本文主要講解ASP.NET 2.0中ObjectDataSource內(nèi)建的緩存功能,通過簡單的配置,我們可以將ObjectDataSource調(diào)用SelectMethod方法得到的數(shù)據(jù)進(jìn)行緩存。2016-05-05在Linux+Jexus中發(fā)布和部署Asp.Net?Core
這篇文章介紹了在Linux+Jexus中發(fā)布和部署Asp.Net?Core,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12基于.net開發(fā)的遵循web標(biāo)準(zhǔn)的個人站點(diǎn)程序包下載
基于.net開發(fā)的遵循web標(biāo)準(zhǔn)的個人站點(diǎn)程序包下載...2006-10-10NopCommerce架構(gòu)分析之(六)自定義RazorViewEngine和WebViewPage
本文對NopCommerce的后臺分離技術(shù)做簡單的探討。NopCommerce通過自定義視圖引擎,重寫了VirtualPathProviderViewEngine類的CreateView、CreatePartialView、FindView、FindPartialView方法,添加自定義的視圖搜索路徑來實(shí)現(xiàn)后臺分離。2016-04-04