2015-07-26 4 views
1

У меня есть actionlinks, которые выполняют аналогичные функции. Как я могу запросить который ActionLink просто нажал на контроллере, так что я могу поставить их все в том же TopRated функции следующим образом:MVC Request Actionlink, который был нажат в контроллере

@Html.ActionLink("Today", "TopRated") 
@Html.ActionLink("30 Days", "TopRated") 
@Html.ActionLink("Weekly", "TopRated") 
@Html.ActionLink("All Time", "TopRated") 

Вместо того, чтобы иметь их в 4-х различных функциях, как это:

@Html.ActionLink("Today", "Today") 
@Html.ActionLink("30 Days", "TopRated30") 
@Html.ActionLink("Weekly", "TopRatedWeekly") 
@Html.ActionLink("All Time", "AllTimeTopRated") 

контроллера :

public ActionResult TopRated() 
     { 
      using (var context = new EntityDBContext()) 
      { 
       //Request which actionlink was just clicked by user 
      } 
     } 

ответ

3

Создать перечислитель всех популярнейших периодов:

public enum PeriodEnum 
{ 
    Today, 
    ThirtyDays, 
    Weekly, 
    AllTime 
} 

Ваш TopRated должен получить параметр этого перечислимого типа, созданный ранее:

public ActionResult TopRated(PeriodEnum period) 
{ 
    using (var context = new EntityDBContext()) 
    { 
     //Request which actionlink was just clicked by user 
    } 
} 

Наконец ваши ссылки действия будут выглядеть так:

@Html.ActionLink("Today", "TopRated", new {period = PeriodEnum.Today}) 
@Html.ActionLink("30 Days", "TopRated", new {period = PeriodEnum.ThirtyDays})}) 
@Html.ActionLink("Weekly", "TopRated", new {period = PeriodEnum.Weekly}) 
@Html.ActionLink("All Time", "TopRated", new {period = PeriodEnum.AllTime}) 

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

  • Нет связанных вопросов^_^