2012-07-04 63 views
5

在我的ASP.NET MVC應用4的RouteConfig文件,我已經註冊了以下默認路由:現在刪除ASP.NET MVC 4路尾部斜槓應用程序根目錄

routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new { controller = "home", action = "index", id = UrlParameter.Optional }); 

,在我的剃鬚刀的意見,我想要爲我的應用程序根目錄生成一個URL:

<a href="@Url.Action("index", "home")">Home</a> 

生成的URL包含尾部斜線;點擊鏈接打開頁面localhost/IISA應用名稱 /。但是,我希望URL不要包含結尾斜槓,以便URL爲localhost/IISA應用名稱。爲其他操作(如/帳戶/登錄)生成路由不會創建帶有尾部斜線的網址 - 它只是關於鏈接到我的應用程序根目錄的路線。

有什麼辦法可以防止ASP.NET MVC路由追蹤斜槓到上述路由?

(我知道我可以從URL包括斜線到一個沒有它重定向,但我寧願路由產生在首位的正確路徑URL)。

+1

我不能重複你的問題,我用'默認route'和它關係到URL,而不'/' –

+1

只是信息,什麼是用斜線這個問題? –

+0

@alexanderb 1)儘管網址略有不同,但兩個鏈接最終都顯示相同的網頁。不好... 2)它很醜陋;-)。 –

回答

0

有任何防止ASP.NET MVC路由將 尾部斜槓追加到上述路由的方法?

當相對路徑爲空時,應該傳遞一個尾部斜線。如果你以某種方式生成鏈接仍然瀏覽器在最後附加一個「/」(你可以很容易地在螢火蟲中驗證,只需在瀏覽器地址欄輸入http://stackoverflow.com並檢查請求標籤,你可以看到尾隨的「/」 )。

這是因爲每HTTP/1.1如,

絕對路徑不能emtpy;如果原始的 URI中不存在,則mut將作爲「/」(服務器根目錄)給出。

http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU(5.1.2節)

相關問題