我已添加到路由表的新路由以从URL中省略控制器名称。一切都在运行时工作正常,但在设计时我注意到Intellisense没有给出任何建议,并在我使用@Html.ActionLink("Label", "MyActionName")
方法时标记了动作(我的演示中的MyActionName)。这样的Intellisense行为是否正常?
routes.MapRoute(
"Custom",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:0)
我不明白你的问题。 Intellisense没有出现哪种方法?在这种情况下,当您在视图中键入ActionLink
时,您只能期望@Html.
帮助程序的Intellisense,这是您希望开箱即用的最佳选择:
这个方法的参数只是魔术字符串,所以不要指望它们出现在Intellisense中。
如果你想要强类型和Intellisense,你可以使用MVCContrib,它提供了这个帮助器的强类型版本,允许你这样做:
@(Html.ActionLink<HomeController>(x => x.MyActionName(), "label"))
或T4MVC:
@Html.ActionLink("label", T4MVC.Home.MyActionName())
答案 1 :(得分:0)
对我来说,Intellisense从未为一个动作工作,所以我所做的是先写控制器名称,然后我得到该控制器内所有可用动作的完整智能感知。
@Html.ActionLink("Link text","","Home")
在上面的例子中,我只是输入“”,一个空字符串用于操作,逗号后我得到了完整的智能控制器。当我在操作名称的引号之间单击时编写/选择我的控制器名称后,我获得了指定控制器中可用操作的完整智能感知(在上面的代码中,Home)。
我不确定这是最好的方式,但它为我工作。