<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      為ASP.NET MVC RC分離Controllers-Views項目后添加“腳手架”功能(一)(已添加MVC2.0及MVC3.0更新)

           連續忙了好幾個月,好久沒有寫東西了,最近稍微有點空,空閑的時候回到了對ASP.NET MVC RC(以下簡稱MVC RC)的研究上來。MVC RC的“腳手架(Scaffold)”功能可以說為MVC RC的開發如虎添翼,不過應用到真實的開發環境中似乎存在一些遺憾的地方:很多時候我們并不希望把Models、ViewsControllers放在同一個項目里面,而是把它們分離到不同的項目,然后由一個項目(比如Views)統一引用其他所有的項目程序集。但是這樣做了以后,Controllers項目中腳手架的功能就“消失了”。

      WebMVC RC)項目中,我們可以這樣在Web項目中使用腳手架創建View頁面:

      或者創建Controller文件:

       

      甚至可以在Controller文件中自動創建或者查看對應ActionView頁面:

      不過這一切經歷了ViewsControllers的“生死離別”之后,就再也無法在Controllers中使用了(原因會在下文中說明)。下面我們來做一個測試。

      首先我們先把MV、C三層分離,比如這樣:

       

      需要注意的是當這樣做的時候,在Controllers項目中需要引用以下這三個核心的程序集:

      System.Web.Abstractions.dll

      System.Web.Mvc.dll

      System.Web.Routing.dll

      以及一些在默認的Controller.cs文件中被引用到的命名空間,如:

      System.Web

      System.Configuration

      以下是分離M-V-CM之所以也要分離出去是因為C需要引用M,而C不能引用V)之后,運行的默認界面,說明這樣的分離是成功的:

       

      OK,到此為止MVC工作正常,只不過……無法在MyMvc.Controllers中使用MVC的腳手架:

      分析一下原因:我們在把Controller分離出來的時候是建了“類庫(Class Library)”,一個普通的類庫當然無法使用MVCWeb)的腳手架,于是我打開了MyMvc.Web的項目文件MyMvc.Web.csproj,用記事本打開這個文件(本質上是一個XML文件),發現了一個和其他項目與眾不同的地方:

      <ProjectTypeGuids>{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

      這個節點中用分號分割了3段看似Guid的代碼,分別是:

      {603c0e0b-db56-11dc-be95-000d561079b0}

      {349c5851-65df-11da-9384-00065b846f21}

      {fae04ec0-301f-11d3-bf4b-00c04f79efbc}

      立刻對比了一下MyMvc.Controllers下面的MyMvc.Controllers. csproj,發現沒有這個節點。喜出望外!于是馬上將這個節點復制到MyMvc.Controllers. csproj對應的地方,重新加載項目以后,發現MyMvc.Controllers的腳手架功能回來了!

      不過通過這樣簡單的添加還是發現了一些小小的瑕疵:細觀MyMvc.Controller的項目圖標類型,怎么和Web的時一樣的(下圖)?不爽。

      看來這樣的直接復制是把整個MVC Web Application下面的類型都一起復制過來了,為了避免日后不必要的麻煩,還是需要讓Controllers變回“類庫”,于是打起了那三個Guid的注意,經過兩次兩兩搭配后({fae04ec0-301f-11d3-bf4b-00c04f79efbc}一定要保留)發現,只要刪除中間的{349c5851-65df-11da-9384-00065b846f21}之后,MyMvc.Controllers項目又回到了“類庫”的狀態:

      于是猜測{fae04ec0-301f-11d3-bf4b-00c04f79efbc}對應了Web Application的項目類型,而{603c0e0b-db56-11dc-be95-000d561079b0}對應了MVC RC的模板。

          注意:{603c0e0b-db56-11dc-be95-000d561079b0}對應了MVC RC(v1.0)的項目代碼,

          如果您使用的是MVC 2.0(包括Preview版本在內),對應的編碼為:{F85E285D-A4E0-4152-9332-AB1D724D3325} !

          如果您使用的是MVC 3.0(包括Beta和RC版本在內),對應的編碼為:{E53F8FEA-EAE0-44A6-8774-FFD645390401}


       

      通過以上這些操作,分離了M-V-C結構,并且在Controllers“完整”保留了MVC RC的腳手架的功能。

      上面的“完整”之所以要突出一下,是因為這種保留實在是太“完整”了,以至于在Controller中自動添加View頁面會添加到Controller項目中,而不是我們所希望的MyMvc.View項目中(查看對應View頁面也存在相同的問題)。這倒是個大問題,如果這個問題不解決,那么“腳手架”反而成了“絆腳石”,這個問題如何解決呢?

      請看下一篇《ASP.NET MVC RC分離C-V項目后添加“腳手架”功能(二)

      (本文的實例也在《ASP.NET MVC RC分離C-V項目后添加“腳手架”功能(二)中提供下載。)

      posted on 2009-02-27 19:14  SZW  閱讀(6926)  評論(19)    收藏  舉報

      主站蜘蛛池模板: 国产精品一区二区三区性色| 国产成人久久精品一区二区| 亚洲成A人片在线观看的电影| 少妇粗大进出白浆嘿嘿视频| 亚洲精品喷潮一区二区三区| 色综合欧美亚洲国产| 国产精品成人一区二区不卡| 午夜爽爽爽男女免费观看影院| 少妇人妻偷人精品免费| 国产乱码精品一区二三区| 国产精品女同性一区二区| 国精品午夜福利视频| 免费人成视频在线播放| 久久99精品久久久久久青青| 91人妻熟妇在线视频| 中文字幕人妻中出制服诱惑 | 日本中文字幕有码在线视频| 日韩中文字幕免费在线观看| 人人爽天天碰天天躁夜夜躁| 亚洲一区二区三区自拍偷拍 | 婷婷久久香蕉五月综合加勒比| 亚洲性日韩精品一区二区| 性一交一乱一乱一视频| 黄色免费在线网址| 性色av一区二区三区精品| 激情内射亚洲一区二区三区| 最新av中文字幕无码专区| 最近中文国语字幕在线播放| 人妻一本久道久久综合鬼色| 久久人人97超碰人人澡爱香蕉| 日本特黄特黄刺激大片| 精品久久久bbbb人妻| 亚洲av永久无码精品水牛影视 | 亚洲性日韩精品一区二区| 亚洲三区在线观看内射后入| 不卡在线一区二区三区视频| 97人妻精品一区二区三区| 久久―日本道色综合久久| 亚洲人妻系列中文字幕| 亚洲av午夜成人片| 一区二区三区午夜无码视频 |