2012-02-13 18 views
0

URLからのコントローラ名を省略するためにルートテーブルへの新しいルートを追加しました。実行時にすべてうまく動作しますが、設計時には、@Html.ActionLink("Label", "MyActionName")メソッドを使用したときにIntellisenseが何も示唆していないし、Actions(MyActionNameが私のデモで)と表示されないことがわかりました。そのようなIntellisenseの動作は正常ですか?Intellisenseがアクションを見つけられない

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

); 
+0

IntelisenceはActionLinkメソッドを入力しているときにアクションの提案をしますが、私の場合はそうではありません。 – Tomas

答えて

0

私はあなたの質問を理解していません。 IntelliSenseが表示されない方法は?この場合、あなたはあなたのビューで@Html.を入力するときにのみActionLinkヘルパーのためのインテリセンスを期待することができ、それはあなたが箱の外を期待することができる最高です:

enter image description here

このメソッドの引数はちょうど魔法の文字列でありますIntellisenseに表示されることは期待しないでください。

あなたは強い型付けとインテリセンスをしたい場合は、使用することができますどちらかあなたがこれを行うことができます。このヘルパーの強く型付けされたバージョンを提供していMVCContrib:私にとって

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

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

またはT4MVCをIntellisenseは決してアクションのために働いたことがないので、まずコントローラー名を書いてから、そのコントローラー内で利用可能なすべてのアクションに完全なインテリセンスを得ます。上記の場合

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

私はただ、「」アクションの空の文字列を入れて、コンマの後に私は私のコントローラの完全なインテリセンスを得ました。アクション名の引用符の間をクリックするとコントローラ名を書き込んだり選択したりすると、指定したコントローラ(上記のコードではHome)内で使用可能なアクションの完全なインテリセンスが得られます。

私は最良の方法だとは思っていませんが、私のために働いています。

関連する問題