我已經得到了URL http://localhost:xyz/HelloWorld
,它指向Home
控制器中的HelloWorld
動作。Html.ActionLink根據URL產生不同結果
在頁面上呈現的URL上,我有一個Html.ActionLink指向同一頁面(是,指向當前頁面的鏈接)。
問題是如果頁面加載爲http://localhost:xyz/HelloWorld/
(帶有斜線),則此鏈接僅指向頁面。如果頁面被加載爲http://localhost:xyz/HelloWorld
(無斜線),則它將指向Home
控制器的Index
操作。
我已經嘗試了幾個重載,但我無法弄清楚是什麼導致了這個問題或者如何解決它。
Html.ActionLink("Hello World", "HelloWorld", "Home");
Html.ActionLink("Hello World", "HelloWorld", "Home", null, null);
Html.ActionLink("Hello World", "HelloWorld", "Home", new { arg = 0 }, null);
這些都有完全一樣的結果。如果有斜線,它們可以正常工作,如果沒有,則直接輸入http://localhost:xyz/
。
任何人都可以解釋這種行爲或如何解決它?
編輯(可能是相關的?):
當arg
存在,而不是0,在同一頁面顯示在http://localhost:xyz/HelloWorld/arg
,並有「Hello World」的鏈接(這工作完全正常),以及類似的鏈接完美地工作。
Html.ActionLink("Argument", "HelloWorld", "Home", new {arg = arg}, null);
無論是否存在尾部斜線,這都指向正確的位置。
ROUTES:
routes.MapRoute(
"HomeStart",
"",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Hello World",
"HelloWorld/{arg}",
new {controller = "Home", action = "HelloWorld", arg = ""}
);
我們可以看看你有你的路線設置? – 2012-03-09 19:54:25
你的論點需要設置爲可選 – diaho 2012-03-09 19:59:02
@ M.Babcock路線添加 – yoozer8 2012-03-09 19:59:07