在控制器中的 [Route()] 数据注释中使用字符串 属性 的值

Using value of String property inside a [Route()] data annotation in Controller

我正在开发一个 ASP.NET MVC 项目,在 ActionController 我尝试在 STG_Route.ADD属性 中使用值 [Route()] 像这样的数据注释:[Route(STG_Route.ADD)] 但是 Visual Studio 告诉我这个错误:

非静态字段、方法或 属性 需要对象引用 'AdminController.STG_Route'

STG_Routeobject的class,这个class是STG_Route

STG_Route class 代码:

public class STG_Route:Routes
{
    public override string ADD => "/STG/Add";
    public override string SHOW => "/STG/Show";
    public override string PROFILE => "/STG/{CODE}";
}

Routes 是另一个 class

请帮助我如何在 [Route()]

中使用 ADD 属性 的值

提前致谢。

覆盖 property 必须是 virtual,抽象并且 STG_Route 继承自 Routes , ADD 不能定义为 const string 类型,那么你就不能在 Route[()] 中使用 STG_Route.ADD。建议不要让STG_Route继承Routes,直接给ADD赋值。

STG_Route

public class STG_Route
{
    public const string ADD="/STG/Add";
    public const string SHOW= "/STG/Show";
    public const string PROFILE= "/STG/{CODE}";
}

控制器

   public class STGController : Controller
    {
        [Route(STG_Route.ADD)]
        public ActionResult ADD()
        {
            return View();
        }
    }