智能感知不会找到行动

时间:2012-02-13 12:00:54

标签: asp.net-mvc-3

我已添加到路由表的新路由以从URL中省略控制器名称。一切都在运行时工作正常,但在设计时我注意到Intellisense没有给出任何建议,并在我使用@Html.ActionLink("Label", "MyActionName")方法时标记了动作(我的演示中的MyActionName)。这样的Intellisense行为是否正常?

routes.MapRoute(
    "Custom",
    "{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);

2 个答案:

答案 0 :(得分:0)

我不明白你的问题。 Intellisense没有出现哪种方法?在这种情况下,当您在视图中键入ActionLink时,您只能期望@Html.帮助程序的Intellisense,这是您希望开箱即用的最佳选择:

enter image description here

这个方法的参数只是魔术字符串,所以不要指望它们出现在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)。

我不确定这是最好的方式,但它为我工作。

相关问题