我正在使用MVC 6和EntityFramework 7在ASP.NET 5中重新开发我的网站。它是LEGO Collectors的参考网站。我正在尝试在“浏览数据库”主页上列出产品已发布的所有年份。我已经开发了一个,但我想弄清楚如何在“浏览”控制器中链接到每年的View,并且链接名称是年份。
示例:
2014
2015
2016
我的网页现在是什么样的,但是充满活力。我希望这些年显示为链接,并链接到Controller中每年的部分。
这是我目前的代码:
<ul class="browse-years">
@foreach (var item in Model.Select(c => c.YearFrom).Distinct()) {
<li>@item</li>
}
我希望你能帮忙解决这个问题。谢谢。
贾罗德
UltimateBrickReference.com的所有者
答案 0 :(得分:0)
使用它:
<li><a asp-controller="Product" asp-action="Display" asp-route-id="@ViewBag.ProductId">@item</a></li>
这将为您提供以下内容:
<a href="/Product/Display/1">View Details</a>
所以根据你想要的改变asp-controller,asp-action和asp-route-id。如果您需要任何帮助,请告诉我
答案 1 :(得分:0)
在LI元素中,使用Html.ActionLink助手创建链接:
<li>@Html.ActionLink(item.ToString(), "ListYear", new { thisYear = item })</li>
这将呈现如下所示的HTML:
<li><a href="/Home/ListYear?thisYear=2016">2016</a></li>
第一个参数是链接文本;如果item不是字符串,则必须将其转换为一个字符串。第二个参数是您希望在用户单击链接时获得控制权的控制器操作。第三个参数是一个包含一个属性的对象,该属性存储年份(或item或item.year或其他)的值,因此控制器知道显示数据的年份。
然后,在您的控制器中,编写一个获取要显示的数据的操作,并将控制权转移到将显示该数据的视图。它将开始这样的事情:
public ViewResult ListYear(object year)
{
return View();
}
您可以添加代码以从对象中提取年份,从数据库中检索它,然后将其传递给您将创建的视图以显示传递的数据。