2015-07-30 5 views
1

Я создал частичный вид, который использует метод 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. Как я могу назвать свой статический метод?

ответ

3

Вы вызываете статический метод для самого класса, а не для экземпляра класса.

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

Но вы уверены, что хотите сделать это статическим? Похоже, что ты хотел:

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

, который затем будет называться

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

спасибо you.I сказали, чтобы сделать его статическим, но, безусловно, вы правы, если S любой другой метод вызов просто позволить статическому методу? есть способ ссылаться на него из класса, в котором он определен, а не экземпляр этого класса? – YosrJ

+0

@ YosrJ - им жаль, что я не понимаю ваш следующий вопрос? – Jamiec

Смежные вопросы