我有3页/站点:首页,产品页面和布局页面。 在每个页面上,我在顶部有一个导航栏:使用“开始”(带您进入首页)和带有"所有产品" -element的下拉菜单。 如果你点击"所有产品"您被定向到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参数是可选的,以及如何声明只显示字符串中类别的产品。
抱歉英语不好
答案 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;)
玩得开心