日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
ASP.NETMVC3預(yù)覽版試用多項(xiàng)改進(jìn)詳解

今天早上,我們發(fā)布了ASP.NET MVC 3的“預(yù)覽1”(”P(pán)review 1”)版本,你可以從http://go.microsoft.com/fwlink/?LinkID=157073下載。

成都創(chuàng)新互聯(lián)公司主營(yíng)古冶網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā),古冶h5微信平臺(tái)小程序開(kāi)發(fā)搭建,古冶網(wǎng)站營(yíng)銷(xiāo)推廣歡迎古冶等地區(qū)企業(yè)咨詢

從ASP.NET MVC項(xiàng)目一開(kāi)始, 我們就使用迭代式的開(kāi)發(fā)方法,并在開(kāi)發(fā)周期中定期發(fā)布預(yù)覽版本。在類(lèi)似今天的預(yù)覽版本中,我們的目標(biāo)是獲得用戶反饋—包括你喜歡的和不喜歡的地方,你覺(jué)得有遺漏或不完善的地方。這些反饋相當(dāng)?shù)挠袃r(jià)值—并使最終產(chǎn)品更加、更加地完善。

ASP.NET MVC 3

正如你所料到的,ASP.NET MVC 3就是ASP.NET MVC下一個(gè)主要發(fā)布版本。

ASP.NET MVC 3與ASP.NET MVC 2是兼容的——這也就是說(shuō),當(dāng)MVC 3發(fā)布后,它便于你把MVC 2的項(xiàng)目更新到MVC 3上。MVC 3的新功能是建立在MVC 1和MVC 2基礎(chǔ)之上的,這也就意味著,你所掌握的技術(shù),知識(shí),類(lèi)庫(kù)和書(shū)籍可以直接用到MVC 3上的。MVC 3只是加了些新的功能—不會(huì)淘汰現(xiàn)有的功能。

ASP.NET MVC 3 可以和ASP.NET MVC 2共存,你可以在機(jī)器上安裝今天的“Preview 1”版本,而不會(huì)影響到你現(xiàn)有的MVC 2項(xiàng)目(除非你顯式指定項(xiàng)目使用MVC 3,否則,它還是繼續(xù)使用MVC 2)。當(dāng)你安裝完“Preview 1”版本后,會(huì)在Visual Studio 2010的“新建項(xiàng)目”對(duì)話框添加一些新的ASP.NET MVC 3模板—選中其中一個(gè)就會(huì)為你創(chuàng)建使用MVC 3的項(xiàng)目。

下面是關(guān)于 “Preview 1”版本一些新功能的詳細(xì)介紹。除非我特別說(shuō)明,所有我這里介紹的功能在你今天可以下載和使用的預(yù)覽版本上都是可用的。將來(lái)還會(huì)根據(jù)你的反饋,有更多的新功能會(huì)隨著后續(xù)預(yù)覽版本的發(fā)布而出現(xiàn)。

視圖方面的改進(jìn)

ASP.NET MVC 3 “Preview 1” 在視圖方面的做了很多的改進(jìn)。

添加→視圖對(duì)話框

在“Preview 1”版中包括了一個(gè)新的“添加→視圖”對(duì)話框,這個(gè)對(duì)話框便于你創(chuàng)建視圖模板文件時(shí)選擇要用的語(yǔ)法。它可以讓你選擇任何一個(gè)在你的機(jī)器上安裝的視圖引擎—讓你使用任何一個(gè)你感覺(jué)自然的視圖模板。

現(xiàn)在已經(jīng)有很多非常不錯(cuò)的開(kāi)源視圖模板引擎(包括Spark, NHaml, NDjango,還有一些其它的)—我們可以如今可以更方便把它們集成到Visual Studio中來(lái)。

在今天的ASP.NET MVC 3 “Preview 1”版本中,新建視圖對(duì)話框里已經(jīng)有兩個(gè)自帶的視圖引擎:ASPX 和 Razor。

#p#

新的“Razor”視圖引擎

這個(gè)月早些時(shí)候,我發(fā)布了一篇關(guān)于我們正在開(kāi)發(fā)的“Razor”視圖引擎的文章。從這篇文章的回復(fù)來(lái)看,已經(jīng)有很多人開(kāi)始期待著使用它了。好消息來(lái)了,你現(xiàn)在可以在“Preview 1”版本中使用它了。

簡(jiǎn)單的Razor示例

讓我們來(lái)創(chuàng)建一個(gè)非常簡(jiǎn)單的在線商店網(wǎng)站,它列出產(chǎn)品類(lèi)別,然后允許訪問(wèn)者通過(guò)點(diǎn)擊這些類(lèi)別來(lái)查看相關(guān)的產(chǎn)品。你可以從這里下載到完整的示例程序。

下面是StoreController類(lèi),它實(shí)現(xiàn)了創(chuàng)建上述場(chǎng)景的兩個(gè)執(zhí)行函數(shù)(“Index”和 “Browse”)。

我們將使用“Razor”視圖引擎來(lái)實(shí)現(xiàn)StoreController的視圖模板。

下面就是定義我們通用布局的“Layout.cshtml”布局頁(yè)面?!癛enderBody()”方法用來(lái)指定在基于這個(gè)主布局頁(yè)面的視圖模板中填入內(nèi)容的地方。

下面是Index執(zhí)行函數(shù)的視圖模板。它是基于上面提到的布局頁(yè)面,然后輸出一個(gè)產(chǎn)品類(lèi)別名稱(chēng)的

    列表。

    上面的模板中,用Html.ActionLink()這個(gè)標(biāo)準(zhǔn)的ASP.NET MVC 輔助函數(shù)去生成一個(gè)指向我們StoreController類(lèi)中“Browse” 執(zhí)行函數(shù)的鏈接。所有在ASP.NET MVC中現(xiàn)存的HTML 輔助函數(shù)都是可以用在“Razor”視圖中—這一點(diǎn)不但適用于ASP.NET MVC內(nèi)置的HTML輔助函數(shù),也適用于其他人開(kāi)發(fā)的輔助函數(shù)(包括其他公司或個(gè)人和MvcContrib項(xiàng)目里的)。

    下面是給Browse執(zhí)行函數(shù)創(chuàng)建的視圖模板。它列出了一個(gè)類(lèi)別下的產(chǎn)品。

    注意上面我們?cè)趂oreach語(yǔ)句中使用其Model屬性,獲取傳入Controller的強(qiáng)類(lèi)型的產(chǎn)品列表的方式。這跟我們?cè)?aspx視圖頁(yè)面的方法一樣。Razor也支持我們通過(guò)“View”屬性來(lái)獲取傳入視圖頁(yè)面的無(wú)類(lèi)型“ViewData”。“View”是一個(gè)動(dòng)態(tài)屬性(這是一個(gè).NET 4的新功能)—這給我們一種很簡(jiǎn)潔輕便的語(yǔ)法來(lái)訪問(wèn)視圖數(shù)據(jù)(ViewData)。這樣我們只需寫(xiě)View.Category,而不是ViewData[“Cateogry”]。

    #p#

    干凈簡(jiǎn)潔

    上面截圖中的代碼已經(jīng)包括了實(shí)現(xiàn)我們的控制器 + 視圖要做的所有事情?!癛azor”使得我們的視圖模板更加干凈簡(jiǎn)潔,而且我想,你還會(huì)發(fā)現(xiàn)它的代碼流程很順暢。如果想更多的了解它的語(yǔ)法和它是如何工作的,請(qǐng)參考我的這在個(gè)月早些時(shí)候?qū)懙年P(guān)于“Razor” 的博客文章。你也可以從這里下載上面所提到的示例代碼。

    代碼智能提示和加亮顯示

    你可能從上面的截圖上已經(jīng)注意到了一件事,在今天發(fā)布的“Preview 1” 版本里,Visual Studio還是不支持對(duì)“Razor”文件的代碼提示和加亮顯示。但我們會(huì)在后續(xù)發(fā)布的版本上予以支持。到時(shí),VS 2010的編輯器會(huì)提供對(duì)Razor文件的C#/VB代碼提示,同時(shí)也支持HTML/CSS/JavaScript代碼提示。

    后續(xù)版本中的改進(jìn)

    我們?cè)诤罄m(xù)版本中,會(huì)在如下三個(gè)方面做一些重要改進(jìn):

    能夠在”Razor”文件的頂部使用@model語(yǔ)句,就不用顯式繼承一個(gè)基類(lèi)了,這樣可以簡(jiǎn)化代碼。

    能夠給站點(diǎn)指定一個(gè)默認(rèn)LayoutPage(布局)頁(yè)面,從而不用顯式地在每個(gè)視圖模板分別設(shè)定。這將更加減少視圖模板里的代碼,使得你的代碼看起來(lái)更干凈。

    不用每次運(yùn)行整個(gè)程序或者啟動(dòng)一個(gè)web服務(wù)器,就能夠?qū)Α癛azor”模板文件進(jìn)行單元測(cè)試的能力。

    根據(jù)前兩個(gè)改進(jìn),Browse模板可以簡(jiǎn)單地寫(xiě)成這個(gè)樣子:

    后續(xù)版本中將會(huì)支持上面的模板語(yǔ)法。編輯器也支持全面的代碼加亮顯示和智能提示。

    控制器方面的改進(jìn)

    ASP.NET MVC3 “Preview 1”包含了一些很好的針對(duì)特定控制器的改進(jìn)。

    全局過(guò)濾器

    ASP.NET MVC 支持通過(guò)過(guò)濾機(jī)制來(lái)描述性地應(yīng)用“橫切”邏輯。 你可以使用屬性語(yǔ)法為控制器和執(zhí)行函數(shù)指定過(guò)濾器,如下所示

    程序開(kāi)發(fā)者常常希望將一些過(guò)濾器邏輯應(yīng)用于程序中的所有控制器上。 現(xiàn)在ASP.NET MVC3 能夠讓你指定一個(gè)全局的過(guò)濾器,這個(gè)過(guò)濾器可以應(yīng)用于程序中的所有控制器。你可以通過(guò)在RegisterGlobalFilters()函數(shù)中將它加入到GlobalFilters 集合中來(lái)實(shí)現(xiàn)這個(gè)目的,這個(gè)函數(shù)被包含在默認(rèn)的Global.asax類(lèi)模板中。(隨后它會(huì)被Application_Start()函數(shù)調(diào)用)

    在MVC3中,這個(gè)過(guò)濾器的判定邏輯非常靈活,你可以配置一個(gè)全局過(guò)濾器,使它只在某些條件符合的時(shí)候才啟用(例如:?jiǎn)⒂谜{(diào)試,或者針對(duì)一個(gè)請(qǐng)求使用特定HTTP響應(yīng)等等)。 過(guò)濾器可以從一個(gè)依賴注入(DI-Dependency Injection)容器中獲取—詳見(jiàn)下文。

    新的動(dòng)態(tài)ViewModel屬性

    ASP.NET MVC 控制器支持“ViewData”屬性, 這個(gè)屬性能夠使你通過(guò)延遲綁定的字典API傳入數(shù)據(jù)到視圖模板中。 例如:

    ASP.NET MVC3仍然支持 “ViewData” API,但是在動(dòng)態(tài)類(lèi)型的控制器中,MVC3用一個(gè)新的“ViewModel”屬性增強(qiáng)了”ViewData” API, 這便于你在使用VB和C#支持的動(dòng)態(tài)語(yǔ)言來(lái)傳遞ViewData的數(shù)據(jù)時(shí),語(yǔ)法比當(dāng)前的字典API更加輕便、簡(jiǎn)潔?,F(xiàn)在你可以編寫(xiě)下面的代碼來(lái)得到跟上面同樣的結(jié)果:

    你不需要定義任何強(qiáng)類(lèi)型的類(lèi)來(lái)使用ViewModel屬性,因?yàn)樗莿?dòng)態(tài)屬性,你只要使用該屬性的 get/set 方法, 在運(yùn)行時(shí)會(huì)動(dòng)態(tài)解析。它內(nèi)部存儲(chǔ)了ViewData字典的屬性鍵值對(duì)。

    新的ActionResult類(lèi)型

    ASP.NET MVC3 “Preview 1” 包含一些新的ActionResult類(lèi)型和對(duì)應(yīng)的輔助函數(shù)。

    HttpNotFoundResult

    新的HttpNotFoundResult 類(lèi)用來(lái)指明:找不到當(dāng)前URL請(qǐng)求的資源。 它會(huì)向調(diào)用客戶端返回HTTP狀態(tài)碼404。你可選擇使用新的HttpNotFound()輔助函數(shù)來(lái)返回它的一個(gè)實(shí)例, 如下例所示:

    ***性重定向

    HttpRedirectResult類(lèi)有個(gè)新的布爾類(lèi)型的屬性Permanent,這個(gè)屬性用來(lái)指明是否會(huì)發(fā)生一個(gè)***性的重定向。 ***重定向使用的HTTP狀態(tài)碼是301。 同時(shí)Controller類(lèi)現(xiàn)在有3個(gè)新的函數(shù)來(lái)執(zhí)行***重定向:RedirectPermanent(), RedirectToRoutePermanent(), 和 RedirectToActionPermanent()。 這些函數(shù)返回一個(gè)Permanent屬性為trueHttpRedirectResult實(shí)例。

    HttpStatusCodeResult

    新的HttpStatusCodeResult類(lèi)能夠用來(lái)顯式設(shè)置響應(yīng)狀態(tài)碼及其詳細(xì)描述。

    JavaScript 和 AJAX 方面的改進(jìn)

    ASP.NET MVC 3包含內(nèi)嵌的JSON 綁定支持,能使執(zhí)行函數(shù)接受JSON編碼的數(shù)據(jù),并將數(shù)據(jù)模型綁定到執(zhí)行函數(shù)的參數(shù)上。

    為了理解功能的作用,請(qǐng)細(xì)看下面jQuery客戶端的JavaScript代碼。它定義了一個(gè)當(dāng)客戶端點(diǎn)擊保存按鈕時(shí)調(diào)用的save事件處理程序。事件處理函數(shù)的代碼構(gòu)造了一個(gè)客戶端的JaveScriptproduct對(duì)象,這個(gè)對(duì)象包含3個(gè)成員域,它們的值都是從HTMLinput元素獲取的。接著jQueryajax()方法向server端的/Store/UpdateProduct地址POST提交一個(gè)包含那個(gè)產(chǎn)品對(duì)象的JSON請(qǐng)求。

    現(xiàn)在ASP.NET MVC 3 便于你在服務(wù)器上通過(guò)下面的執(zhí)行函數(shù)來(lái)實(shí)現(xiàn)/Store/UpdateProduct URL:

    上面的UpdateProduct()執(zhí)行函數(shù)接受一個(gè)強(qiáng)類(lèi)型的Product對(duì)象作為參數(shù)。ASP.NET MVC 3 能夠在服務(wù)器端自動(dòng)綁定到來(lái)的JSON請(qǐng)求到.NET Product 類(lèi)型,無(wú)需你去實(shí)現(xiàn)一些客戶綁定或列集邏輯。 ASP.NET MVC內(nèi)置的模型和輸入驗(yàn)證特性都會(huì)正常運(yùn)作。

    在牽涉到客戶端模板和數(shù)據(jù)綁定等場(chǎng)景里(參見(jiàn)我之前的博客),我們認(rèn)為這個(gè)能力顯得尤為重要。你可以通過(guò)在客戶端執(zhí)行客戶端模板來(lái)編排數(shù)據(jù)格式并顯示一個(gè)單獨(dú)的數(shù)據(jù)項(xiàng)或者數(shù)據(jù)集合。 ASP.NET MVC 3 能夠輕易地將客戶端模板和服務(wù)器端處理JSON數(shù)據(jù)的執(zhí)行函數(shù)連接起來(lái)。

    后續(xù)在JavaScript/AJAX方面的改進(jìn)

    后續(xù)版本里,ASP.NET MVC 3將包含更好的支持分離式JavaScript。ASP.NET MVC 3也將通過(guò)它內(nèi)置的驗(yàn)證輔助函數(shù)來(lái)直接支持jQuery驗(yàn)證類(lèi)庫(kù)。

    在模型驗(yàn)證方面的改進(jìn)

    ASP.NET MVC 2 在模型驗(yàn)證方面已經(jīng)有了顯著的改進(jìn)。詳情請(qǐng)參看我之前發(fā)表的博客。

    ASP.NET MVC 3又有了進(jìn)一步的增強(qiáng),它現(xiàn)在支持.NET 4在命名空間System.ComponentModel.DataAnnotations中引入了幾個(gè)新的驗(yàn)證功能。

    MVC 3 支持.NET 4中新的數(shù)據(jù)標(biāo)記驗(yàn)證元數(shù)據(jù)特性,比如說(shuō)DisplayAttribute.

    MVC3支持.NET 4 對(duì)ValidationAttribute類(lèi)的改進(jìn)。 在.NET 4中,ValidationAttribute 類(lèi)引入了一個(gè)IsValid重載函數(shù),該函數(shù)提供了關(guān)于驗(yàn)證上下文更多的信息,比如說(shuō)當(dāng)前正在被驗(yàn)證的對(duì)象。這使得我們有更加豐富的驗(yàn)證手段,比如使用模型的其它屬性值來(lái)驗(yàn)證當(dāng)前值。

    MVC 3 支持在.NET 4中引入的IValidatableObject接口。該接口支持模型層面的驗(yàn)證,并且在驗(yàn)證出錯(cuò)時(shí),它可以針對(duì)整個(gè)模型狀態(tài)或者模型內(nèi)的兩個(gè)屬性之間關(guān)系提供一些出錯(cuò)信息。

    下面的例子使用IValidatableObject接口來(lái)實(shí)現(xiàn)自定義驗(yàn)證方法。此函數(shù)可以將驗(yàn)證規(guī)則應(yīng)用到多個(gè)屬性上,在出錯(cuò)時(shí)可以發(fā)出多種出錯(cuò)信息(可以是類(lèi)似下面例子中的消息或一個(gè)導(dǎo)致出錯(cuò)屬性的名稱(chēng)列表)。

    ASP.NET MVC 3綁定模型時(shí)會(huì)考慮IValidateObject接口(除了使用其它一些在MVC2時(shí)就已經(jīng)支持的驗(yàn)證方法之外),通過(guò)該接口獲得驗(yàn)證出錯(cuò)的錯(cuò)誤消息,在視圖中用內(nèi)置的HTML表單輔助函數(shù)標(biāo)記或高亮顯示受影響的字段。

    ASP.NET MVC 3 還引入了另一個(gè)新的接口:IClientValidatable。在運(yùn)行時(shí),ASP.NET MVC 3通過(guò)該接口可以確定驗(yàn)證器是否支持客戶端驗(yàn)證,該接口的被特意設(shè)計(jì)成可以與很多驗(yàn)證架構(gòu)集成。此外,IMetadataAware接口也是在MVC 3 中新引入的,該接口使得創(chuàng)建模型元數(shù)據(jù)的過(guò)程更加簡(jiǎn)單。

    在依賴注入方面的改進(jìn)

    ASP.NET MVC 3更好地支持了依賴注入與DI/IoC容器的集成。

    在“Preview 1”版中,我們從如下幾個(gè)方面支持依賴注入技術(shù):

    1. 控制器(注冊(cè)和注入控制器工廠,注入控制器)

    2. 視圖 (注冊(cè)和注入視圖引擎,把依賴項(xiàng)注入到視圖頁(yè)面中)

    3. 動(dòng)作過(guò)濾器 (定位和注入過(guò)濾器)

    在后續(xù)版本中,我們將研究在以下方面對(duì)注入技術(shù)的支持:

    · 模型綁定器(注冊(cè)和注入)

    · 值生成器(注冊(cè)和注入)

    · 驗(yàn)證方式提供程序(注冊(cè)和注入)

    · 模型元數(shù)據(jù)生成器(注冊(cè)和注入)

    ASP.NET MVC 3 將支持Common Service Locator 庫(kù)和所有的支持IServiceLocator 接口的DI容器。 這樣一來(lái),使用ASP.NET MVC 集成任何支持Common Service Locator的DI容器將變得很容易。

    注意:在“Preview 1”版中,我們?cè)诖a中重新定義了CSL接口,從而在我們的安裝文件中不用包含CSL 動(dòng)態(tài)鏈接庫(kù)。現(xiàn)有的CSL實(shí)現(xiàn)將不可以用在“Preview 1”版上,相反,CSL將需要針對(duì)我們的接口重新編譯才能使用。在后續(xù)版本中將更容易使用CSL,節(jié)省了這個(gè)額外的步驟。

    Brad Wilson正在寫(xiě)一個(gè)關(guān)于ASP.NET MVC 3 對(duì)注入依賴技術(shù)的支持方面的系列文章。 下面的連接是Brad Wilson前期的一些文章:

    · ASP.NET MVC 3服務(wù)定位器:簡(jiǎn)介(***章)

    · ASP.NET MVC 3服務(wù)定位器:控制器(第二章)

    · ASP.NET MVC 3服務(wù)定位器:視圖(第三章)

    · ASP.NET MVC 3服務(wù)定位器:過(guò)濾器(第四章)

    點(diǎn)擊這里下載一個(gè)簡(jiǎn)單的ASP.NET MVC 3示例,它演示了如何在ASP.NET MVC 3中使用已廣泛應(yīng)用的Ninject依賴注入容器。

    下載和鏈接

    點(diǎn)擊這里下載ASP.NET MVC 3“Preview 1”版,并在ASP.NET MVC Forum 留下您的反饋信息。

    一旦安裝好ASP.NET MVC 3,你就可以下載并運(yùn)行前面介紹的簡(jiǎn)單Razor示例程序。

    參閱我之前的關(guān)于“Razor”的博客了解它的工作方式和代碼語(yǔ)法。此外,在我最近的博客EF4 代碼優(yōu)先類(lèi)庫(kù) 和 EF4 代碼優(yōu)先數(shù)據(jù)庫(kù)結(jié)構(gòu)映射,你將看到使用EF4 代碼優(yōu)先類(lèi)庫(kù)和 SQL Express創(chuàng)建前面示例程序的數(shù)據(jù)庫(kù)結(jié)構(gòu)和模型層。另外你也可以收聽(tīng)Scott Hanselman的 ASP.NET MVC 3播客,或者收看Channel 9上關(guān)于ASP.NET MVC 3的視頻。

    總結(jié)

    我們非常興奮能夠發(fā)布ASP.NET MVC 3 “Preview 1”版,我們正在著手準(zhǔn)備接收大家的反饋意見(jiàn)。

    我們發(fā)布這個(gè)預(yù)覽版的最主要目的就是收集反饋意見(jiàn) – 哪些地方好,哪些地方不好以及還遺漏哪些地方。您的意見(jiàn)對(duì)我們來(lái)說(shuō)是非常寶貴的,最終會(huì)幫助我們完善產(chǎn)品。 如果您安裝了今天的版本,請(qǐng)到網(wǎng)站http://forums.asp.net的ASP.NET MVC論壇里提出您的意見(jiàn)和報(bào)告任何您發(fā)現(xiàn)的問(wèn)題。我們的開(kāi)發(fā)團(tuán)隊(duì)會(huì)密切關(guān)注論壇里面的反饋意見(jiàn),也很樂(lè)意幫助您解決您碰到的任何問(wèn)題。

    我們會(huì)逐條審閱所有的反饋意見(jiàn),使更新版ASP.NET MVC 3變得更加***。

    希望這能對(duì)您有所幫助。


    網(wǎng)站名稱(chēng):ASP.NETMVC3預(yù)覽版試用多項(xiàng)改進(jìn)詳解
    標(biāo)題來(lái)源:http://www.5511xx.com/article/dhesdhc.html