2012-02-13 43 views
0

我已经添加了新的路由到路由表,以便从url中省略控制器名称。在运行时一切正常,但在设计时我注意到,当我使用@Html.ActionLink("Label", "MyActionName")方法时,Intellisense不会给出任何建议,并将Actions(MyActionName在我的演示中)标记为未找到。这种智能感知行为是否正常?智能感应找不到动作

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

); 
+0

Intelisence在ActionLink方法中输入时给出Actions的建议,但在上面的例子中没有。 – Tomas 2012-02-13 12:07:57

回答

0

我不明白你的问题。 Intellisense不显示哪种方法?在这种情况下,你只能指望智能感知为ActionLink帮手,当您在您的视图键入@Html.,这就是你可能希望开箱最好的:

enter image description here

这种方法的参数只是魔术字符串,所以不要指望它们出现在Intellisense中。

如果你想强类型和智能感知你可以使用任何MVCContrib提供这种帮助,它允许你这样做的强类型版本:

@(Html.ActionLink<HomeController>(x => x.MyActionName(), "label")) 

T4MVC

@Html.ActionLink("label", T4MVC.Home.MyActionName()) 
0

对我来说Intellisense从来没有为一个动作工作,所以我做的是我先写控制器名称,然后我得到完整的intellisense到该控制器中可用的所有动作。

@Html.ActionLink("Link text","","Home") 

在上述情况下,我只是把“”,一个空字符串的操作和逗号后,我得到了我的控制器全智能感知。在单击操作名称的引号之间写入/选择我的控制器名称后,我将获得指定控制器(在上面的代码,主页)中可用操作的完整智能感知。

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