MVC 設置項目默認起始頁和多級目錄的路由配置


 

 

 

 

我們新建一個MVC的項目

默認的路由是這樣的,但是由於一些需求,我們需要對Controllers按照一些規則分類。

比如說我們在Controllers下面建了一個School的文件夾,然后建了一個Student的控制器。

 

然后我們運行項目,當然默認訪問的還是Home/Index這個頁面,這時我們可以通過在瀏覽器中輸入School/Student/Index來訪問Student下面的頁面嗎???、

我們來試試!!!

很顯然不行,我們再來看看我們View下面的結構

這里的Student文件夾是直接在放在Views下面的,School文件夾和Student下面的Index頁面是我們新建的,MVC默認也只會在Views下面添加一個Student文件。

但是為什么我輸入School/Student/Index訪問不到呢,這是由於MVC在查找頁面的時候只會搜索

  • Views/{1}/{0}.cshtml
  • Views/Shared/{0}.cshtml

這種地址,所以我們這里直接輸入Student/Index就能夠訪問到我們的頁面了。

與此同時,我們在路由配置中修改一下Cotroller 和action的名稱 就能夠改變我們的默認起始頁。

但是很顯然,這不是我們想要的那種結果,因為我們對Controller按照文件夾的區別存放了,我們也希望把視圖通過我們的定的規則來存放。

比如是上面這樣。但是這樣一放,我們還能通過Student/Index來訪問到我們的頁面嗎?

 

 答案是顯而易見的,改變了視圖結構后我們輸入Student/Index是訪問不到我們的頁面的。

這時要想訪問到Student/index頁面,就需要配置一些東西了。

這里就存在了兩個問題:

1.視圖結構改變后如何能訪問到頁面。

2.如何將Student/Index設置默認起始頁。

首先解決問題1.

1.

新建一個MyViewEngine類,繼承RazorViewEngine

2.

加入到global.asax文件中,

3.

新加一個路由。

這樣就就解決問題,然后通過School/Stundent/Index就可以訪問到頁面了。

第二個問題,右鍵項目設置為特定頁就可以了,目前只找到這種解決方式,后面如果有新的方法會補充上來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM