0
我需要創建網站,其中URL模式允許個性化的URL,如www.mysite.com
帶來了主要的門戶網站。正確渲染MVC站點上的ActionLinks與vanityURL
www.mysite.com/customer1
爲該客戶帶來了自定義門戶(同樣的動作和控制器被稱爲自定義參數將從URL中拉出)。
我希望在所有頁面上始終在URL中保留前綴'/ customer1 /'。
我有以下的路線,其做工精細:
routes.MapRoute(
name: "CompanyUrl",
url: "{companyurl}/{controller}/{action}/{id}",
defaults: new { companyurl = UrlParameter.Optional, controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然而,當我進入的vanityURL網站等www.mysite.com/customer1
所有動作鏈接呈現確定爲
<a href="/customer1/Home/Contact">Contact</a>
但是當我只輸入www.mysite.com
,所有鏈接都呈現爲:
<a href="//Home/Testimonials">Testimonials</a>
,我無法導航到任何地方。
如何在沒有companyurl
參數且沒有附加/
的情況下正確渲染它們?
謝謝,幫助。我沒有意識到有一個默認設置是強制性的,當我在companyurl參數上添加一個約束時,我遇到了一些其他問題,然後消失了 – Anna