真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETMVC2中的Area特性是什么

這篇文章主要講解了“ASP.NET MVC 2中的Area特性是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ASP.NET MVC 2中的Area特性是什么”吧!

赤峰網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

沒有Areas前相同問題的處理

在mvc1.0時(shí)代,如果要將網(wǎng)站按目錄結(jié)構(gòu)來區(qū)分。例如

Website/Index  Admin/ Index  User/ Index  ……/……

通常都是在Views下面建立若干個(gè)和Controller相對(duì)應(yīng)的目錄,然后在里面放置aspx頁面

Views\Website\Index  Views\Admin\Index  Views\User\Index  Views\.......\.......

這樣建立若干個(gè)目錄

其實(shí)這樣也沒什么不好,***不好的可能就是隨著業(yè)務(wù)的需要,結(jié)構(gòu)需求會(huì)越來越多,views目錄下面的文件夾越來越多,更或者你需要更細(xì)結(jié)構(gòu)的頁面路徑,例如:

Website/Product/Index  Website/Catalog/Index  Website/Contect/Index

當(dāng)然,你可以用UrlRouteing或者ViewEngine搞定這些問題。但是毫無疑問,隨著網(wǎng)站的運(yùn)行日久,同一個(gè)Controller目錄下的文件會(huì)越來越多,對(duì)于同一個(gè)Controller下的ActionResult的命名和UrlRouting里面的維護(hù)帶來不小的麻煩。給管理帶來不方便【個(gè)人理解】。

現(xiàn)在出Areas之后,這個(gè)問題有所緩解。還是如上的Url

Website\Product\Index  Website\Catalog\Index  Website\Order\Index  Website\Contact\Index

可以使用mvc2.0新增的Area來解決這個(gè)問題

建立項(xiàng)目

首先,用mvc2建立一個(gè)新項(xiàng)目,在網(wǎng)站根目錄下建立Areas文件夾,在Areas文件夾建立你要區(qū)分的目錄,例如本例的Website,然后繼續(xù)在Website目錄下增加Views目錄,繼續(xù)在views目錄下增加需要分類管理Controller目錄和建立aspx文件。使文件結(jié)構(gòu)形成

Areas\Website\Views\Product  Areas\Website\Views\ Catalog  Areas\Website\Views\ Order  Areas\Website\Views\ Contact

ASP.NET MVC 2中的Area特性是什么

到原有默認(rèn)的views目錄將web.config復(fù)制到現(xiàn)在的新的views目錄,你甚至現(xiàn)在可以把原有的views目錄刪除掉

建立Areas區(qū)域UrlRouting

隨便找個(gè)地方,建立一個(gè)新的類,繼承AreaRegistration實(shí)現(xiàn)抽象類

修改Global.sas

protected void Application_Start()          {  AreaRegistration.RegisterAllAreas();  //注冊(cè)區(qū)域Url規(guī)則,注意先后順序  RegisterRoutes(RouteTable.Routes);          }

為區(qū)域頁面建立Controller類

為區(qū)域頁面建立Controller類沒什么區(qū)別,可以建立在另外一個(gè)外部類庫項(xiàng)目上,***需要注意的就是命名空間需要和注冊(cè)Area規(guī)則的類的命名空間的前導(dǎo)一致。我們知道,在不使用Areas的時(shí)候Controller是不受namespace約束的。也就是說只要你有一個(gè)Controller名,而不管他在哪個(gè)命名空間下都是可以起作用的,如果我們?cè)诓煌拿臻g建立2個(gè)相同的Controller類名,編譯的時(shí)候不會(huì)出錯(cuò),但是運(yùn)行mvc網(wǎng)站的時(shí)候會(huì)提示存在2個(gè)相同的Controller類,系統(tǒng)不知道使用哪個(gè)。但是Areas卻有所限制,他一定要命名空間的前導(dǎo)和AreaRegistration類得命名空間相同。例如:我建立的AreaRegistration網(wǎng)站項(xiàng)目命名空間為Valor.Asmyna.Areas.Website然后我將Controller分開作為一個(gè)獨(dú)立的類庫,如果我隨便寫一個(gè)命名空間空間,這個(gè)Controller對(duì)于Area里面的views是不起作用的,但是他卻對(duì)原始Views目錄的Controller起作用,只有將他的命名空間設(shè)置成Valor.Asmyna.Areas.Website.xxx.xxx的前導(dǎo)才起作用

namespace Valor.Asmyna.Areas.Website   {       public class HomeController : Controller       {   public ActionResult Index()          {              ViewData["title"] = "Website/Home/Index";              return View();          }      }  public class ProductController : Controller      {          public ActionResult Index()          {  ViewData["title"] = "Website/Product/Index";  return View();       }      }  public class ContentController : Controller      {          public ActionResult Index()          {    ViewData["title"] = "Website/Content/Index";      return View();          }   }  }

Ok,到瀏覽器測(cè)試一下看看

Area結(jié)構(gòu)完全一致會(huì)出現(xiàn)的問題

我們繼續(xù)在Area目錄下增加一個(gè)Home目錄,在他的Veiws目錄下也增加三個(gè)相同的controller目錄

ASP.NET MVC 2中的Area特性是什么

直接在剛才注冊(cè)Website AreaRegistration命名空間為他注冊(cè)一個(gè)Area規(guī)則,用默認(rèn)系默認(rèn)的Controller為Home.,

對(duì)2個(gè)路徑進(jìn)行訪問:

/Website/Product

/Home/Product

這個(gè)時(shí)候controller對(duì)于這2個(gè)area目錄的views都能起作用。在頁面打印得到的結(jié)果一致

ASP.NET MVC 2中的Area特性是什么

顯然這樣是不對(duì)的.由此我們剛才想到Area的Controller的選擇名命名空間限制問題。那我們他們分開來注冊(cè)看看。修改Home區(qū)域的AreaRegistration的命名空間和在為HomeArea建立一個(gè)Controller類,使他們的命名空間一致。這次我們用Valor.Asmyna.Areas.Website

namespace Valor.Asmyna.Areas.Home{     public class HomeController : Controller      {         public ActionResult Index()          {              ViewData["title"] = "Home/Content/Index";              return View();          }   }  public class ProductController : Controller      {          public ActionResult Index()          {              ViewData["title"] = "Home/Content/Index";              return View();          }}      public class ContentController : Controller      {          public ActionResult Index()          {              ViewData["title"] = "Home/Content/Index";              return View();          }      }}  namespace Valor.Asmyna.Areas.Home  {      public class HomeController : Controller      {          public ActionResult Index()          {              ViewData["title"] = "Home/Home/Index";              return View();          }   }  public class ProductController : Controller{         public ActionResult Index()          {              ViewData["title"] = "Home/Product/Index";              return View();          }    }      public class ContentController : Controller      {          public ActionResult Index()          {              ViewData["title"] = "Home/Content/Index";              return View();          }      }  }

編譯之后訪問,各自分別為自己的Controller處理了

Home/Product

ASP.NET MVC 2中的Area特性是什么

Website/Product

ASP.NET MVC 2中的Area特性是什么

感謝各位的閱讀,以上就是“ASP.NET MVC 2中的Area特性是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)ASP.NET MVC 2中的Area特性是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


標(biāo)題名稱:ASP.NETMVC2中的Area特性是什么
URL網(wǎng)址:http://weahome.cn/article/isjcis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部