如何制作从数据库动态更新的链接列表?

时间:2016-01-13 22:33:57

标签: asp.net razor asp.net-core asp.net-core-mvc entity-framework-core

我正在使用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的所有者

2 个答案:

答案 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();
        }

您可以添加代码以从对象中提取年份,从数据库中检索它,然后将其传递给您将创建的视图以显示传递的数据。