ASP.NET Core MVC で、コントローラー名とアクション名とかをインテリセンスに無理矢理対応させる Part.1

TagHelperでもやっぱりインテリセンスが利かなかったりする

ASP.NET Core MVC(a.k.a. MVC6)にて追加されたTagHelperについては、最初「なんじゃこりゃ?WebForms(ASPX)か?」などと訝しく思っていましたが、慣れてしまうと今度は従来HTMLHelperの方が変に見えてしまうに至りました。人間とは勝手なものです。

こんなの(TagHelper)↓

<div class="navbar-collapse collapse">
  <ul class="nav navbar-nav">
    <li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
    <li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>
    <li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>
  </ul>
</div>

対してHTMLHelper(従来)はこんな感じ↓

<div class="navbar-collapse collapse">
  <ul class="nav navbar-nav">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>@Html.ActionLink("About", "About", "Home")</li>
    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
  </ul>
  @Html.Partial("_LoginPartial")
</div>

HTMLHelperでは、ActionLinkなどでコントローラーやアクションを指定する箇所は上記のように文字列で、そこではVisualStudioのインテリセンス(コード補完)は利きませんでした。
TagHelperの登場で何か変わるのかなと期待したのですが、やっぱりコントローラーやアクションの記述にはインテリセンスは利いてくれません。

続きを読む