可选的GET参数

时间:2016-11-24 13:02:25

标签: c# razor

我有3页/站点:首页,产品页面和布局页面。 在每个页面上,我在顶部有一个导航栏:使用“开始”(带您进入首页)和带有"所有产品" -element的下拉菜单。 enter image description here 如果你点击"所有产品"您被定向到Products-Page(products.cshtml)。

products.cshtml(页面)应该接收一个可选的GET参数"类别" (类型=字符串)。如果输入了此参数,则应仅显示产品,其中包含字符串外的类别。 例如string = seafood =>仅显示category = seafood

的产品

我的代码到目前为止在我的layout.cshtml中:

<ul class="dropdown-menu">
<li method="get" name="kategorie" target="_blank" >
<a href="~/Produkte.cshtml">Alle Speisen</a>
</li>
</ul>

我不知道如何声明GET参数是可选的,以及如何声明只显示字符串中类别的产品。

抱歉英语不好

1 个答案:

答案 0 :(得分:0)

如果您的目标是在菜单中显示膳食列表,则可以将列表与UI分开,然后为菜单中的每个条目创建一个条目。这是一个小例子:

模特课程:

public class MealsViewModel
{
   public string Category {get; set;}
   public string DisplayName {get; set;}
   public int Id {get; set;}
}

控制器方法

 public ActionResult index(string category)
{
  var model = GetListofMeals(category);
  model.insert(0, new MealsViewModel(){ id=0, DisplayName="Alle Speisen", Category = ""}; 
  return View(model);
}


public ActionResult Products(int id)
{
  var model = GetMeal(id);
  return View(model);
}

private List<MealsViewModel> GetListofMeals(string category)
{
  ......
}

private MealsViewModel GetMeal(int id)
{
   .......
}

索引视图:

@model IEnumerable<Models.MealsViewModel>

<ul class="dropdown-menu">
@foreach(var meal in Model)
{
<li>
 @Html.ActionLink(Model.DisplayName, "products", new { id = Model.id}, new { target ="_blank"})
</li>
}
</ul>

VielSpaßbeiAusprobieren;)

  

玩得开心