自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET MVC實(shí)例和新RC版本中視圖方面的改進(jìn)

開發(fā) 后端
本文對www.asp.net網(wǎng)站上推出的ASP.NET MVC設(shè)計(jì)陳列室以及即將推出的ASP.NET MVC RC版本的一些功能做了介紹,希望可以給你帶來幫助。

我們在www.asp.net網(wǎng)站上推出了一個新的ASP.NET MVC 設(shè)計(jì)陳列室。這個設(shè)計(jì)陳列室里陳列了你可以下載和輕易使用在你的ASP.NET MVC應(yīng)用中的免費(fèi)HTML設(shè)計(jì)模板。每個設(shè)計(jì)模板中包括了一個Site.master文件,一個CSS樣式表文件,也許還有一套圖片,用戶控件,以及支持它們的輔助方法等。

陳列室允許你在線預(yù)覽每個設(shè)計(jì),以及下載一個你可以解出和集成進(jìn)你的網(wǎng)站的模板.zip版本。該陳列室允許任何人在創(chuàng)作共用許可(creative commons license)下創(chuàng)建和提交新的設(shè)計(jì)。訪客可以對它們進(jìn)行投票,提供反饋。最受歡迎的設(shè)計(jì)會在陳列室的頂部顯示。

我們認(rèn)為這會給開發(fā)人員提供一個很有用的方式來更輕松地創(chuàng)建有吸引力的,與標(biāo)準(zhǔn)兼容的網(wǎng)站。希望還能鼓勵大家創(chuàng)建和共享可輕易為他人重用的設(shè)計(jì)。

即將推出的最終版候選版本中的View方面的改進(jìn)

說到UI這個話題,我想我也應(yīng)該與大家分享即將推出的ASP.NET MVC最終版候選版本(Release Candidate,簡稱RC)中的一些與視圖有關(guān)的改進(jìn)的細(xì)節(jié)。除了缺陷修補(bǔ)外,RC版本還融合了若干個特定于視圖的新功能和來自社區(qū)的建議。

不需要后臺代碼文件的視圖

基于許多人的反饋,我們決定做一個變動,這樣MVC視圖文件在默認(rèn)情形下不再擁有后臺代碼文件。這個變動有助于強(qiáng)化視圖在MVC世界中的目的(視圖意在純粹的顯示,不該包含任何與顯示無關(guān)的代碼),去掉項(xiàng)目中沒被使用的文件(對大多數(shù)人來說):

在ASP.NET MVC Beta版本中,開發(fā)人員可以通過在視圖中的Inherits(繼承)屬性上使用泛型的CLR句法來除去后臺代碼文件,但這個CLR句法,說得輕一點(diǎn)的話,非常難以發(fā)現(xiàn)而且非常難用。ASP.NET MVC開發(fā)團(tuán)隊(duì)結(jié)合了ASP.NET中現(xiàn)有的幾個擴(kuò)展性功能,將在ASP.NET RC版本中,在Inherits屬性中提供一個標(biāo)準(zhǔn)VB/C#語言句法:

不使用后臺代碼文件的另一個好處是,在你將視圖文件加到項(xiàng)目中時,你會馬上得到intellisense。在Beta版本中,你需要在創(chuàng)建視圖后做一次編譯才能在其中得到代碼intellisense。RC版本將使得添加和立刻編輯視圖的流程免去了編譯之累,變得更加緊湊。

#p#

視圖的頂級Model屬性

在ASP.NET MVC的早期版本中,你使用ViewData.Model屬性來訪問傳給視圖的強(qiáng)類型的模型對象:

上面的句法還是可用的,雖然現(xiàn)在ViewPage上還有一個頂級的Model屬性可為你所用:

這個屬性的作用跟先前的代碼例子是一樣的,它主要的好處在于它允許你編寫的代碼更加簡明。

HTML/AJAX輔助對象現(xiàn)在允許表達(dá)式句法

有一個不少人都提出的要求是,在使用視圖的HTML和AJAX輔助對象時,在指稱Model時使用強(qiáng)類型表達(dá)式的句法(而不是字符串)的能力。

在ASP.NET MVC Beta版本中,這是不可能的,因?yàn)镠tmlHelper和AjaxHelper輔助類并沒有在它們的簽名中呈示模型的類型,所以大家需要建造直接基于ViewPage基類的輔助方法才能達(dá)成這個目的。ASP.NET MVC RC 版本引進(jìn)了新的HtmlHelper和 AjaxHelper 類型,是在ViewPage 基類上呈示的。這些類型現(xiàn)在允許任何人建造使用了表達(dá)式句法的強(qiáng)類型HTML和AJAX輔助擴(kuò)展來指稱View的模型。

例如,我可以使用下面的代碼建造一個(非常簡單的)強(qiáng)類型TextBox輔助方法:

然后可以這樣,在我的任意一個視圖中,用它來綁定一個Product模型對象:

Visual Studio將在源代碼編輯器中操作View的模型時,以這種方式對強(qiáng)類型的表達(dá)式句法提供完整的intellisense:

注:核心ASP.NET MVC V1程序集中的HTML輔助擴(kuò)展還將使用現(xiàn)有的句法(不是基于表達(dá)式的),我們正計(jì)劃在MVCFutures程序集中加入基于表達(dá)式的版本。當(dāng)然,你還可以使用字符串或者強(qiáng)類型的表達(dá)式,來添加你自己的輔助方法。所有這些內(nèi)置的輔助方法都是可以去掉的(因?yàn)樗麄兪菙U(kuò)展方法),如果你要用自己的版本來替換或覆蓋它們的話。

#p#

Scaffolding支持

ASP.NET MVC RC版本還包括了在Visual Studio中使用新的ASP.NET MVC "Add View"命令創(chuàng)建視圖時的自動的"UI scaffolding" 支持。這個scaffolding支持將允許針對任何.NET 類型或?qū)ο蟮淖詣拥囊晥D生成,意味著它對POCO類,LINQ to SQL, LINQ to Entities, NHibernate, SubSonic, LLBLGen Pro,或者任何其他對象模型都工作。Scaffolding引擎使用了反射來獲取View的模型類型的公開接口,然后將它們傳給scaffolding模板,在生成的視圖中填充基于它的合適HTML標(biāo)識。

例如,假定我們有一個ProductsController類,想創(chuàng)建一個它的"Edit" action,來顯示特定產(chǎn)品的編輯視圖。使用RC版本,我們可以象這樣,在我們的"Edit" action方法中右擊,選擇"Add View"上下文菜單命令:

然后在"Add View" 對話框中,我們可以表示我們將把Product類型傳給我們的View:

我們可以表示我們要創(chuàng)建一個"Empty" 視圖模板(象上面那樣),或者表示我們要VS針對我們提供的Product對象自動提供一個"Edit"表單視圖的基本架子:

如果我們選擇"Edit" 模板, VS會自動為我們生成一個文件,該文件含有合適的HTML和驗(yàn)證輔助方法來生成一個可編輯的表單視圖:

然后我們可以運(yùn)行應(yīng)用,馬上得到一個編輯界面:

#p#

然后我們可以進(jìn)去,將生成的edit.aspx文件做任意改動。

我們發(fā)布的scaffolding系統(tǒng)的一個非常棒的東西是,它是使用Visual Studio的內(nèi)置T4代碼生成系統(tǒng)實(shí)現(xiàn)的(Scott Hanselman在這里有一篇非常好的相關(guān)博客)。隨ASP.NET MVC發(fā)布的"List(列表)", "Edit(編輯)", "Create(創(chuàng)建)" and "Details(細(xì)節(jié))" 模板可以做完全定制,或者用你自己的T4模板做替換(或者從ASP.NET MVC設(shè)計(jì)陳列室下載)。所以,如果你自己有特別的方式生成HTML的話,或者想要使用自定義的HTML輔助類(譬如,基于強(qiáng)類型表達(dá)式的輔助類),那你可以更新默認(rèn)的模板,然后scaffolding系統(tǒng)之后就會使用它們。

我們計(jì)劃允許模板可以在整個機(jī)器的層次,以及每個項(xiàng)目的層次上被置換(這樣,你可以在源碼控制中簽入特定于應(yīng)用的scaffolding模板,在團(tuán)隊(duì)成員間共享)。

編輯視圖的MSBuild任務(wù)

在默認(rèn)情形下,當(dāng)你編譯ASP.NET MVC項(xiàng)目時,它會編譯項(xiàng)目中除了視圖文件中代碼以外的所有代碼。在ASP.NET MVC Beta中,你想要編譯視圖的話,你需要編寫你自己的 MSBuild任務(wù)。ASP.NET MVC RC版本現(xiàn)在包含了一個內(nèi)置的 MSBuild 任務(wù),你可以用它來將視圖包括成為項(xiàng)目編譯過程的一部分。它會核實(shí)應(yīng)用中所有視圖和母版頁的句法和行內(nèi)代碼,如果遇到問題的話,它會給你編譯錯誤信息。

但因?yàn)樾阅艿木壒剩覀儾唤ㄗh在開發(fā)期間運(yùn)行它來做快速編譯,但將它加到特定的編譯配置(例如,staging和部署)或者在與 Build 或 CI (連續(xù)集成)服務(wù)器一起使用時是非常方便的。

即將推出的ASP.NET MVC RC版本的其他一些功能

上面是RC版本中一些特定于視圖的功能的簡短列表。

在RC版本中,還有許多其他的功能和要求,這些包括:IDataErrorInfo支持,允許模型匯報驗(yàn)證錯誤信息,以及更豐富的錯誤驗(yàn)證擴(kuò)展性以允許你使用自己的方式來匯報模型驗(yàn)證信息到ModelBinders中(IDataErrorInfo支持是建造在這個的基礎(chǔ)之上的);新的FileResult和JavaScriptResult的ActionResult 類型(允許你更輕松地下載文件和可執(zhí)行的JavaScript到瀏覽器中);內(nèi)置的 jQuery -vsdoc intellisense支持;重構(gòu)了的AccountController支持,以促成更簡單的表單登錄場景的單元測試和擴(kuò)展性;各種各樣的項(xiàng)目模板改進(jìn),隨處可見的眾多擴(kuò)展性;諸多的缺陷修補(bǔ)等。

【編輯推薦】

  1. 新ASP.NET 3.5圖表控件簡介
  2. ASP.NET學(xué)習(xí)路線圖
  3. ASP.NET應(yīng)該遵守的9條代碼編寫規(guī)范
責(zé)任編輯:楊鵬飛 來源: cott Guthrie 博客
相關(guān)推薦

2009-04-01 12:00:43

ASP.NETMVC

2009-07-28 13:06:45

ASP.NET MVC

2010-03-04 08:49:01

VS 2010 RCASP.NET MVC

2009-07-28 15:08:50

MVC三層架構(gòu)實(shí)例

2009-09-04 16:28:05

ASP.NET 4.0

2009-07-31 12:43:59

ASP.NET MVC

2010-10-12 09:52:02

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2011-01-15 23:07:59

2012-06-26 10:24:51

Asp.Net框架Razor

2009-07-20 16:44:56

ASP.NET MVCIValueProvi

2009-07-23 15:44:39

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-23 14:31:20

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2010-08-16 09:14:37

ASP.NET MVC

2012-05-09 13:29:42

ASP.NET

2009-12-18 09:13:31

ASP.NET MVC

2009-07-23 14:21:55

ASP.NET頁面
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號