程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> NopCommerce架構分析之(五)Model綁定Action參數

NopCommerce架構分析之(五)Model綁定Action參數

編輯:ASP.NET基礎

asp.net MVC中Action參數不只是一些基本類型,也支持實體參數。那麼從客戶端傳來的數據如何映射或轉換成實體對象呢?就是通過實體綁定類ModelBinder。此系列類在請求轉化為後台Controller的Action方法前,捕獲傳遞過來的數據,並對其進行解析和轉換,最終為實體類對象。

在系統啟動前,Global.asax.cs中的方法Application_Start方法調用下面代碼定義參數轉換規則。

//model binders 
ModelBinders.Binders.Add(typeof(BaseNopModel), new NopModelBinder()); 

NopModelBinder繼承DefaultModelBinder承擔系統的實體綁定類,但好像只是留一個接口,並沒有使用。主要是繼承父類的方法,稍有改變的地方是:方法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,只是尚未發現有子類實現此方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved