【问题标题】:How to make a list of links that dynamically updates from a Database?如何制作从数据库动态更新的链接列表?
【发布时间】:2016-04-19 02:46:38
【问题描述】:

我正在使用 MVC 6 和 EntityFramework 7 在 ASP.NET 5 中重新开发我的网站。它是 LEGO Collectors 的参考网站。我正在尝试在“浏览数据库”主页上列出所有产品已发布的年份。我已经开发了一个,但我想弄清楚如何链接到“浏览”控制器中的每一年视图,并将链接名称设为年份。

例子:

  • 2014

  • 2015

  • 2016

是我的页面现在的样子,但是动态的。我希望这些年显示为链接,并链接到控制器中每一年的部分。

这是我当前的代码:

<ul class="browse-years">
@foreach (var item in Model.Select(c => c.YearFrom).Distinct()) { 
    <li>@item</li>
}

希望您能对此有所帮助。谢谢。

贾罗德

UltimateBrickReference.com 的所有者

【问题讨论】:

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


    【解决方案1】:

    在您的 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();
            }
    

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

    【讨论】:

    • 在 asp.net 5 mvc 6 中我们使用 Tag Helpers 而没有 Html Helpers
    【解决方案2】:

    使用这个:

    <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。如果您需要任何帮助,请告诉我

    【讨论】:

    • 当我使用该代码(并根据我的需要对其进行修改)并打开页面时,它不会将其转换为链接,并且当我查看源代码时,它没有更改为类似第二个代码sn-p。
    • @MCAdventureCity 你能分享你写的代码吗?
    猜你喜欢
    • 2023-04-10
    • 2012-03-28
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2015-11-29
    相关资源
    最近更新 更多