【问题标题】:Intellisense for asp-controller or asp-action in ASP.NET Core MVCIntellisense 用于 ASP.NET Core MVC 中的 asp-controller 或 asp-action
【发布时间】:2017-11-07 11:46:01
【问题描述】:

我刚刚使用 asp.net core 2 安装了最新版本的 VS 2017。标签助手 intellisense 适用于 asp-for="FirstName"(其中 FirstName 是我的模型的属性),但不适用于 asp-controller ="..."asp-action="..."

是否有任何方法(例如扩展)为控制器/动作...名称提供智能感知以避免手动键入它们?

更新(更多信息):

例如,如果您有一个名为 Customer 的模型:

public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Code { get; set; }
}

并在您的 Index.cshtml 中使用以下剃须刀代码:

@{ var myVar = "abc";}
<input type="text" asp-for="@myVar" />

<label asp-for="FirstName">Name:</label>
<input type="text" asp-for="FirstName" />

<a asp-controller="Home" asp-action="About">About</a>

您将对 asp-for="Firs..." 中的 FirstName 进行智能感知,但对于类似的属性 asp-controller="Hom...asp-action="Abou..." 则没有智能感知,而它们都是紫色和粗体(作为 TagHelpers)。

【问题讨论】:

  • 你想在哪里应用这些属性?到哪个元素?
  • @RicardoPeres 例如&lt;a asp-controller="Home" asp-action="About"&gt;About&lt;/a&gt; 中的asp-controllerasp-action。我更新了帖子,请检查一下。

标签: asp.net-core intellisense


【解决方案1】:

这是不可能的,主要是因为找到控制器——因此,找到动作——是很棘手的。一个控制器可以是很多东西:

  • 从 BaseController 继承的类
  • 带有 Controller 后缀的 POCO 类
  • 某些约定提供的其他内容
  • 其他在运行时定义

【讨论】:

  • 虽然我认为 Visual Studio 或扩展至少可以提供普通控制器的列表,例如定义为 HomeController : Controller 的那些具有“控制器”后缀和/或继承自 ControllerBaseController。即使在某些(罕见的)情况下它不完整,它也会有所帮助并防止一些拼写错误......
  • ReSharper 做得很好,所以显然可以做到。
猜你喜欢
  • 2022-12-04
  • 2021-11-28
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
  • 2016-10-22
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多