久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ASP.NET 4.5新特性之新的模型綁定方式

 蝸牛之窩 2012-10-02

ASP.NET 4.5新特性之新的模型綁定方式

2012年03月13日00:00 it168網(wǎng)站原創(chuàng) 作者: 廖煜嶸編譯 編輯:皮麗華 評論:0

【IT168 技術】ASP.NET 自推出從1.0發(fā)展到4.0以來,,在每個版本都有很重要和實用的功能推出,,比如在1.0到2.0時代,使用了web控件的方式大大方便了開發(fā)者的開發(fā),,而在3.5中,,又出現(xiàn)了很多新的功能,比如Heal Monitoring健康檢查等,。在4.0版本中,,借鑒了開源陣營眾多MVC框架思想,提供了ASP.NET MVC的框架,,讓Web開發(fā)者更得心應手的開發(fā),。

  但程序員發(fā)現(xiàn),在開發(fā)象數(shù)據(jù)模型驅動一類的應用時,,需要編寫不少代碼,,有時會很復雜,借助最新發(fā)布的ADO.NET Entity Framework框架,,用戶可以在對象模型轉化為數(shù)據(jù)庫對象這一步驟中減少一定的步驟和代碼量,。但隨著ASP.NET 4.5的發(fā)布(目前是preview版本),在數(shù)據(jù)模型綁定這一方式上,又將有重大的變革,。本文將以簡單的例子講解在 4.5中這一新特性的應用,。本文的閱讀對象建議為對ASP.NET 4.0有使用經(jīng)驗的讀者。

  ASP.NET 4.5中模型綁定

  在A SP.NET 4.5中,,我們可以直接將數(shù)據(jù)模型層中的模型直接跟相關的數(shù)據(jù)綁定控件和CRUD(增刪改查操作),、分頁操作進行綁定,但它跟ObjectDataSource控件和ASP.NET MVC中的模型綁定是有所不同的,。要注意的是, 4.5 是基于.NET 4.5的,,讀者可以安裝Visual Studio 2011 preview版本

  (http://www.microsoft.com/download/en/details.aspx?id=27538可以下載)。如果要對ASP.NET 4.5的新特性有全面了解,,可以參考如下的這篇文章(http://www./vnext/whats-new),。

  首先,我們來看ASP.NET 4.5中的新特性“Web表單的模型綁定”,。在之前的版本中,,web表單中的數(shù)據(jù)綁定,用的都是“Eval”的方法,。在運行時期間,,通過調(diào)用Eval方法,利用反射的原理去處理當前要綁定的數(shù)據(jù)對象,,并讀取其中Eval方法中指定名稱的成員的值,。關于為什么Eval方法的這種綁定形式是有害處的,可以參考如下這篇文章

  (http://www.:80/2011/02/how-to-avoid-databindereval-in-aspnet.html),。

  而在ASP.NET 4.5中,,模型綁定的方式有了相當大的改進,我們通過下面的若干個步驟,,來了解新的模型綁定方式有很什么不同:

  •   Web表單的模型綁定
  •   過濾方式
  •   更新操作

  在本文中,,我們使用的是Sql server 2008 R2版本,使用了其中的”Company”示例數(shù)據(jù)庫作示范,,其中有兩個如下的表:

  Department表 - DeptNo (int) Primary Key, Dname (varchar(50)),Location (varchar(50)).

  Employee表 - EmpNo (int) Primary Key, EmpName (varchar(50)),Salary (int), DeptNo(int) Forwign Key.

  下面我們正式開始實做的步驟:

  1) 打開Visual Studio 2011 preview版本,新創(chuàng)建一個web應用工程,,將其命名為“ASPNET45_ModelBinding”,。

  2) 在工程中,分別新增兩個文件夾,,一個名為Model,,一個名為Department。在Department文件夾中,,新增加兩個web頁面(注意都勾選上帶master page功能),,分別命名為

  Deparment.aspx和Departmentdetail.aspx。

  3) 在Model文件夾中,新增加一個ADO.NET實體對象模型,,將其命名為CompanyEDMX.edmx,。在其增加的向導中,注意選擇Company數(shù)據(jù)庫并選擇Department和Employee表,。在創(chuàng)建完畢后,,如下圖所示:

ASPL.NET 4.5新特性之新的模型綁定方式

  4) 在代碼視圖中,打開Department.aspx頁面,,增加一個Repeater控件,,將其與Department數(shù)據(jù)模型進行綁定。 代碼如下:

ASPL.NET 4.5新特性之新的模型綁定方式

  在上面的代碼中,,請留意跟以往版本的ASP.NET 的不同,,其中,在repeater控件中,,使用了ModelType屬性,,指定了要將Deparment數(shù)據(jù)模型實體跟repeater控件進行綁定。ModelType屬性在所有的數(shù)據(jù)綁定控件中,,都是可以使用的,。這個新特性可以允許我們?nèi)ザx那些綁定在控件中的數(shù)據(jù)類型和能讓我們在控件中綁定模型的屬性??梢钥吹?,我們現(xiàn)在可以不用象以前那樣,寫復雜的DataBinder.eval,而是直接通過

  就可以直接輸出數(shù)據(jù)模型Department中的屬性了,?!?/p>

5) 打開Deparment.aspx.cs的代碼界面,編寫如下代碼:

ASPL.NET 4.5新特性之新的模型綁定方式

  可以看到,,這里實際上直接將Department數(shù)據(jù)實體模型中的數(shù)據(jù)加載并跟repeater控件進行了綁定,。其中objContext為通過ASP.NET 4.5的Entity Framework框架,自動將數(shù)據(jù)庫中的數(shù)據(jù)實體內(nèi)容進行了綁定,,再通過objContext.Departments獲得了數(shù)據(jù)庫中Departments中的數(shù)據(jù),,最后記得跟控件綁定時,要使用ToList方法進行轉換,,轉換為List類型的數(shù)據(jù),。

  6) 直接運行程序,可以在瀏覽器中,,看到如下圖的界面,,列出了所有的部門。

ASPL.NET 4.5新特性之新的模型綁定方式

  7) 在上面的步驟中,,我們其中需要點每個部門的連接,,顯示該部門下的詳細情況。這個在 2.0到4.0時代,我們常用的方法是DetailsView和FormView控件進行增刪改查操作,,而在 4.5時代,,其gridview,formview,detailsview控件則提供了如下的屬性方法,方便進行CRUD等操作

  SelectMethod: 選擇數(shù)據(jù)的方法,,返回的數(shù)據(jù)類型是IEnumarable

  InsertMethod: 進行插入相關操作

  UdateMethod: 進行更新的相關操作

  DeleteMethod: 進行刪除的相關操作

  8) 對DepartmentDetails.aspx進行修改操作如下:

ASPL.NET 4.5新特性之新的模型綁定方式

  注意這里用AutoGenerateEditButton和AutoGenerateInsertButton分別產(chǎn)生了編輯和插入的按鈕,。

  9) 修改DepartmentDetails.aspx.cs代碼如下

ASPL.NET 4.5新特性之新的模型綁定方式

  現(xiàn)在請仔細閱讀上面的代碼,注意的是上面的所有方法中,,都跟前端的界面沒有任何關系了,,也就是說代碼中沒涉及任何前端界面的內(nèi)容。比如在GetDepartment方法中,,注意使用了[QueryString] int DeptNO的方式,,自動獲取了DeptNo的值,并會顯示在DetailsView,、表單中,,而在以前的 版本中,必須使用 Request.QueryString[“DeptNo”]的方法獲得,。此外,,請留意在三個方法中,是如何通過LINQ的方法獲得department的實體對象,,以及在UpdateDepartment和InsertDepartment方法中,,是如何簡單直接對實體進行增加和更新的。

10)打開site.master文件,,修改如下:

ASPL.NET 4.5新特性之新的模型綁定方式

  11) 運行程序,,這次點每個department后,會跳轉到departmentdetails.aspx的詳細頁,,如下所示:

ASPL.NET 4.5新特性之新的模型綁定方式

  可以看到,,這里在detailsview中,自動顯示了deptno的值,,并且有默認的edit和new兩個連接,,用于編輯和新增數(shù)據(jù)。

  篩選數(shù)據(jù)

  接下來,,我們看下如何篩選數(shù)據(jù),。

  在 4.5中,提供了System.Web.ModelBinding的命名空間,,這個命名空間中包括了一些如ControlAttribute,QueryStringAttribute等類,這些類都是繼承自ValueProviderSourceAttribute,。這個基類是用來定義方法參數(shù),,用來指定用于模型綁定的值的來源。換句話說,這意味著傳遞到方法中的參數(shù)指定了要篩選記錄的值是什么,,以及值的來源是什么,,比如來自控件還是QueryString。

  下面我們繼續(xù)以實做例子來講解相關的步驟,。

  1) 使用Visual Studio 2011 新建立一個web工程,,命名為ASPNET45_ModelBinding,增加兩個文件夾Model和Employee,。

  2) 在Model文件夾中,,增加一個ADO.NET Entitiy Framework框架向導生成的模型,命名為CompanyEDMX.edmx,,使用的是SQL SERVER 2008 R2,,數(shù)據(jù)庫為company,建立如下的兩張表結構:

  Department - DeptNo (int) Primary Key, Dname (varchar(50)),Location (varchar(50)).

  Employee - EmpNo (int) Primary Key, EmpName (varchar(50)),Salary (int), DeptNo(int) Foreign Key.

  在向導完成后,,將生成如下圖的數(shù)據(jù)模型圖

ASPL.NET 4.5新特性之新的模型綁定方式

 3)在Employee文件夾中,,新建一個web頁面(注意選上包括master模版頁),命名為Employee.aspx,,增加一個dropdownbox和一個gridview,并且設置相關的屬性列表如下:

ASPL.NET 4.5新特性之新的模型綁定方式

  整個頁面代碼如下:

ASPL.NET 4.5新特性之新的模型綁定方式

  4) 打開Employees.aspx.cs,,增加如下代碼

ASPL.NET 4.5新特性之新的模型綁定方式

  注意,在GetEmployees方法中,,返回的類型為IQueryable,接收的參數(shù)為Deptno,。這里注意使用了[Control]屬性類,這個類的構造函數(shù)中,,其參數(shù)定義了要接收的控件的ID,。在這個例子中,源控件是DropDownList,,其id名為ddlDeptName,。GetEmployees方法則接收了DeptNo參數(shù),并且通過LINQ的方式,,根據(jù)DeptNo參數(shù),,篩選出相關的數(shù)據(jù)。

  另外一個注意點,,是在GridView中,,設置了AllowPaging屬性為true。在早期的 版本中,,必須還是要寫一點代碼來進行分頁,,但是在 4.5時代,已經(jīng)完全是零代碼了,,因為只要返回的數(shù)據(jù)集的類型為IQueryable,,則自動綁定后的Gridview會進行自動分頁,。

  運行以上代碼,會看到如下圖的結果,,可以在下拉框中選擇不同的部門類別進行數(shù)據(jù)篩選,。

ASPL.NET 4.5新特性之新的模型綁定方式

  本文的代碼可以在如下地址下載獲得:http://www./Uploads/ASPNET/ASPNET45_ModelBinding.zip

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多