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

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

MVC路由自定義及視圖找尋規(guī)則的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)MVC路由自定義及視圖找尋規(guī)則的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:成都響應(yīng)式網(wǎng)站建設(shè)、品牌網(wǎng)站制作、成都全網(wǎng)營(yíng)銷(xiāo)推廣。我們專(zhuān)注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶(hù)提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

MVC路由自定義

相信對(duì)于MVC路由的配置大家也都了解過(guò)一些,其實(shí),這也不是本章的重點(diǎn)。

創(chuàng)建MVC項(xiàng)目的時(shí)候,根目錄下>>App_Start>>RouteConfig,這個(gè)類(lèi)就是用來(lái)配置路由的,開(kāi)始會(huì)有個(gè)默認(rèn)路由。

MVC路由自定義及視圖找尋規(guī)則的示例分析

簡(jiǎn)單介紹下:***個(gè)參數(shù):路由名稱(chēng)(***),第二個(gè)參數(shù)url:需要注意的是{controller}、{action}都是相當(dāng)于占位符。第三個(gè)參數(shù)則是默認(rèn)路由了。

場(chǎng)景:當(dāng)你的控制器需要根據(jù)不同功能來(lái)分類(lèi)時(shí),假如需要做不同產(chǎn)品,希望把同一產(chǎn)品的控制器放在一起??梢赃@樣做:

添加一條路由規(guī)則:

         public static void RegisterRoutes(RouteCollection routes)           {               routes.IgnoreRoute("{resource}.axd/{*pathInfo}");               routes.MapRoute(                   name: "Product",                   url: "Product/AboutPrice/{controller}/{action}/{id}",                   defaults: new { controller = "Sale", action = "Index", id = UrlParameter.Optional }               );                 routes.MapRoute(                  name: "Default",                  url: "{controller}/{action}/{id}",                  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }              );          }

注意點(diǎn):路由規(guī)則匹配是從上到下的,優(yōu)先匹配的路由一定要寫(xiě)在最上面。因?yàn)槁酚善ヅ涑晒σ院?,它就不?huì)繼續(xù)匹配下去。當(dāng)然我們創(chuàng)建的控制器目錄也得符合才能匹配。

MVC路由自定義及視圖找尋規(guī)則的示例分析

結(jié)果:

MVC路由自定義及視圖找尋規(guī)則的示例分析

MVC視圖找尋規(guī)則

在上面那部分即使我們自定義了路由,但是視圖創(chuàng)建的位置還是得乖乖放在Views文件夾下,(不然的話(huà),結(jié)果肯定是找不到視圖)我們同樣也希望View位置是可配。

希望控制器返回的視圖能在這個(gè)目錄下:

MVC路由自定義及視圖找尋規(guī)則的示例分析

①首先,需要寫(xiě)一個(gè)類(lèi)來(lái)自定義我們視圖的映射規(guī)則,這里我就建在App_Start文件夾下,跟其他配置類(lèi)一起。

 public sealed class MyViewRule:RazorViewEngine       {           public MyViewRule() {                  ViewLocationFormats = new string[] {                   //我們定義的視圖找尋規(guī)則,和路由配置一樣,它是從上往下匹配,如果兩個(gè)路徑下都有著視圖,它會(huì)展示***個(gè)。                   "~/ProductViews/AboutPrice/{1}/{0}.cshtml",                   //這是默認(rèn)設(shè)置的,覺(jué)得用不到可以刪掉,{1}表示控制器名稱(chēng),{0}表示視圖名稱(chēng)                   "~/Views/{1}/{0}.cshtml",                  "~/Views/Shared/{0}.cshtml"              };          }      }

②然后,需要在全局Global.asax.cs里面注冊(cè)我們的規(guī)則,代碼如下:

  public class MvcApplication : System.Web.HttpApplication       {           protected void Application_Start()           {               AreaRegistration.RegisterAllAreas();               FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);               RouteConfig.RegisterRoutes(RouteTable.Routes);               BundleConfig.RegisterBundles(BundleTable.Bundles);               //上面是項(xiàng)目創(chuàng)建默認(rèn)注冊(cè)的,下面兩條:先把原來(lái)的規(guī)則清空,再把我們?cè)O(shè)置加上()              ViewEngines.Engines.Clear();              ViewEngines.Engines.Add(new MyViewRule());          }      }

測(cè)試結(jié)果:

MVC路由自定義及視圖找尋規(guī)則的示例分析

錯(cuò)誤:The view at '~/ProductViews/AboutPrice/Sale/Index.cshtml' must derive from  WebViewPage, or WebViewPage.

大概意思是:沒(méi)有繼承這個(gè)WebViewPage類(lèi),在編譯的時(shí)候,這個(gè)視圖頁(yè)面也是會(huì)生成一個(gè)類(lèi)的,解決的辦法有兩種:

①直接讓它繼承那個(gè)類(lèi)(@inherits System.Web.Mvc.WebViewPage)

  @{       Layout = null;   }   @inherits System.Web.Mvc.WebViewPage                          Index          
 我視圖位置不一樣的哦!      
    

當(dāng)然,上面這個(gè)辦法,有個(gè)不好的地方就是每次添加一個(gè)視圖就得寫(xiě)一次,視圖多的話(huà)極不方便。我們還可以通過(guò)配置文件讓它繼承WebViewPage

②添加配置文件(web.config),在pages節(jié)點(diǎn)下繼承WebViewPage?;蛘咴谀J(rèn)創(chuàng)建Views文件夾下有個(gè)Web.config復(fù)制到/ProductViews/AboutPrice下。(局部配置文件,就近原則)

 

結(jié)果:

MVC路由自定義及視圖找尋規(guī)則的示例分析

關(guān)于“MVC路由自定義及視圖找尋規(guī)則的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


文章名稱(chēng):MVC路由自定義及視圖找尋規(guī)則的示例分析
網(wǎng)頁(yè)URL:http://weahome.cn/article/ggcjeh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部