ASP.NET MVC 路由規則寫法

來源:互聯網
上載者:User

   看書的時候,喜歡去思考,喜歡問自己幾個為什麼,但是天資愚笨,長時間找不到答案,這可如何是好?上天呀,賜給我一個聰明的大腦吧!或者告訴我如何在遇到問題的時候,能快速的解決。這篇部落格不為別的,只是提供一種解決問題的方法,作為程式員,雖然我算不上,源碼可能才是問題的本質。

  新建立一個ASP.NET.MVC項目的時候,會有一個預設的路由規則,形式如下:

routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{id}", // 帶有參數的 URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 參數預設值);

 我們知道大括弧裡面的表示預留位置,既然是預留位置,那麼換成其它的是不是也行,當換成 

routes.MapRoute(                "Default", // 路由名稱                "{action}/{id}", // 帶有參數的 URL                new { controller = "Home",action = "LogOn", id = UrlParameter.Optional } // 參數預設值            );

 

這個是可以的,但是換成下面的就不行,結果出錯。

routes.MapRoute(                "Default", // 路由名稱                "{action}/{id}", // 帶有參數的 URL                new { action = "LogOn", id = UrlParameter.Optional } // 參數預設值            );

 

錯誤資訊也提示了,必須有"controller",對於我該的第一種情況,也就是下面的雖然在規則中沒出現,但是預設值中確出現了,也就是說這個其實是還有 “controller”的

 routes.MapRoute(                "Default", // 路由名稱                "{action}/{id}", // 帶有參數的 URL                new { controller = "Home",action = "LogOn", id = UrlParameter.Optional } // 參數預設值            );

 

決定找到答案,於是反編譯了代碼,看到了自己想要的答案:

 

 

同理,Action也是必須出現的。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.