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

C# 无法在非静态上下文中访问静态方法,c#,asp.net,asp.net-mvc,static-methods,C#,Asp.net,Asp.net Mvc,Static Methods,我创建了一个局部视图,该视图使用了一个名为GetUrl的方法,但出现了错误无法在非静态上下文中访问静态方法 下面是我如何实现该方法的: public class TimeLineStep { public string Code { get; set; } public string Title { get; set; } public TimeLineStatus Status { get; set; } public string Description {

我创建了一个局部视图,该视图使用了一个名为GetUrl的方法,但出现了错误
无法在非静态上下文中访问静态方法

下面是我如何实现该方法的:

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>
}
@使用UI.Controls
@模型列表
@{
布局=空;
}
@使用(Html.ContentBlock(“黄色”和“))
{
    @foreach(模型中的var menuItem) {
  • }
}

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

您调用类本身的静态方法,而不是类的实例

<a href="@TimeLineStep.GetUrl(menuItem.Code)"> @menuItem.Title </a>
这将被称为

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


谢谢。有人告诉我要让它保持静态,但你肯定是对的,如果有其他方法可以让调用保持静态?有一种方法可以从定义它的类中引用它,而不是该类的实例?@YosrJ-很抱歉,我不明白你的后续问题?
<a href="@menuItem.GetUrl()"> @menuItem.Title </a>