我正在使用默認路由,所以我不需要指定控制器。ASP.NET MVC:出現空動作鏈接
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
有了這個,我可以創造像myapp.com/Customers而非myapp.com/Home/Customers
網址,當我在本地測試,一切都很好。當我上傳一個真人版時,任何用Html.ActionLink生成的鏈接都是空的。我知道我在正確使用Html.ActionLink,因爲它工作本地罰款:
// Title Action Controller
<%: Html.ActionLink("Manage My Settings", "Settings", "Home") %>
我已經刪除所有路線,但默認情況下,試圖用不帶控制器等等。我甚至試圖恢復到其指定的ActionLink控制器的途徑,例如:
"{controller}/{action}/{id}"
沒有什麼工作現場。一切工作在當地。有點生氣。
UPDATE:
OK,做了一個奇怪的發現。我實際上有另一個可選的UrlParameter ID後,稱爲頁面。我愚蠢地沒有把它包括在這個例子中,因爲我認爲它沒有任何區別。如果我把它拿出來,事情似乎有效。
所以,實際上,這個工程:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
和這作品!
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但這個確實不工作
routes.MapRoute(
"Default",
"{action}/{id}/{page}",
new { controller = "Home", action = "Index",
id = UrlParameter.Optional, page = UrlParameter.Optional }
);
爲什麼不呢?
關於你已部署的IIS版本與本地應用程序相同? – Serghei 2012-01-18 14:08:30
IIS6在服務器上,並在本地其任何內部服務器Visual Studio 2010運行,我相信是IIS 7.5 – roryok 2012-01-18 14:23:17
這是問題在我的回答下面看 – Serghei 2012-01-18 14:25:36