我正在使用默认路由,所以我不需要指定控制器。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