无法在非静态上下文中访问静态方法

Cannot access static method in a non-static context

我创建了一个使用名为 GetUrl 的方法的局部视图,但出现错误 cannot access static method in a non static context

以下是我实现该方法的方式:

public class TimeLineStep
{
    public string Code { get; set; }
    public string Title { get; set; }
    public TimeLineStatus Status { get; set; }
    public string Description { get; set; }
    public string Category { get; set; }

    public static string GetUrl(string code)
    {
        switch (code)
        {
            case "1":
                return "#";
            case "2":
                return "#";
            case "3":
                return "#";
            case "4":
                return "#";
            case "5":
                return "#";
            case "6":
                return "#";
            case "7":
                return "#";
            default:
                return "#";
        }
    }
}

和我的部分观点:

@using UI.Controls
@model List<Web.Models.TimeLineStep>
@{
    Layout = null;
}
@using (Html.ContentBlock("Yellow", ""))
{
    <ul>
        @foreach (var menuItem in Model)
        {
            <li>
                <a href="@menuItem.GetUrl(menuItem.Code)"> @menuItem.Title </a>
            </li>
        }
    </ul>
}

此局部视图生成一个带有 URL 的垂直菜单。如何调用我的静态方法?

您在 class 本身上调用静态方法,而不是 class.

的实例
<a href="@TimeLineStep.GetUrl(menuItem.Code)"> @menuItem.Title </a>

但是你确定要让它静态化吗?看起来你想要的是:

public string GetUrl()
{
    switch (this.Code)
         ....

然后将被称为

<a href="@menuItem.GetUrl()"> @menuItem.Title </a>