そこにそれらを手動で登録する必要がありますような一般的なルートを使用することはできません。しかし、あなたは1を自分で作成することができます。
[AttributeUsage(AttributeTargets.Class)]
public class ControllerNameAttribute : Attribute
{
public string Name { get; }
public ControllerNameAttribute(string name)
{
Name = name;
}
}
は、コントローラ上でそれを適用します。
[ControllerName("Test")]
public class HomeController : Controller
{
}
は、次にカスタムコントローラ規則作成:
public class ControllerNameAttributeConvention : IControllerModelConvention
{
public void Apply(ControllerModel controller)
{
var controllerNameAttribute = controller.Attributes.OfType<ControllerNameAttribute>().SingleOrDefault();
if (controllerNameAttribute != null)
{
controller.ControllerName = controllerNameAttribute.Name;
}
}
}
を、スタートアップにおけるMVCの規則に追加します。 cs:
services.AddMvc(mvc =>
{
mvc.Conventions.Add(new ControllerNameAttributeConvention());
});
今すぐHomeController
インデックスアクションは/Test/Index
で応答します。あなたが望むように、かみそりタグヘルパー属性を設定することができます。
少なくとも、ReSharperはRazorで少し壊れてしまうという欠点しかありません。それは規則を認識していないので、asp-controller
属性が間違っていると思っています。
[ApiVersion( "1.0")]を使用して[Route( "api/v {バージョン:apiVersion}/[コントローラ]")]を使用します。 –