C# 在引导MVC中将数据从SQL数据库提取到html悬停下拉列表

C# 在引导MVC中将数据从SQL数据库提取到html悬停下拉列表,c#,jquery,html,twitter-bootstrap,asp.net-mvc-4,C#,Jquery,Html,Twitter Bootstrap,Asp.net Mvc 4,我正在开发我的MVCOnlineShop,这是我迄今为止所做的: 我以前在视图中编写了一个代码,这样我就可以将产品链接到它们的类别,并且它起作用了,所有类别和产品数据库都在SQL server中。代码如下: @model MVCOnlineShop.Models.Category @{ ViewBag.Title = "Browse"; } <h2>Browsing Category: @Model.CategoryName</h2> <ul>

我正在开发我的MVCOnlineShop,这是我迄今为止所做的: 我以前在
视图
中编写了一个代码,这样我就可以将产品链接到它们的类别,并且它起作用了,所有类别和产品数据库都在
SQL server
中。代码如下:

@model MVCOnlineShop.Models.Category

@{
    ViewBag.Title = "Browse";
}
<h2>Browsing Category: @Model.CategoryName</h2>
<ul>
    @foreach (var Product in Model.Products)
    {
        <li>
            @Html.ActionLink(Product.ProductName,
"Details", new { id = Product.CategoryID })
        </li>
    }
</ul>
这是来自
SQL
category.cs
的category类:

namespace MVCOnlineShop.Models
{
    using System;
    using System.Collections.Generic;

    public partial class Category
    {
        public Category()
        {
            this.Products = new HashSet<Product>();
        }

        public int CategoryID { get; set; }
        public string CategoryName { get; set; }
        public string Description { get; set; }

        public virtual ICollection<Product> Products { get; set; }
    }
}
名称空间MVCOnlineShop.Models
{
使用制度;
使用System.Collections.Generic;
公共部分类
{
公共类别()
{
this.Products=newhashset();
}
public int CategoryID{get;set;}
公共字符串CategoryName{get;set;}
公共字符串说明{get;set;}
公共虚拟ICollection产品{get;set;}
}
}

您的foreach循环应该是:

@foreach(var category in Categories)
   {
      @Html.LabelFor(category.CategoryName)
      @foreach(var product in category.Products)
      {
         <div class="dropdown">
            <div class="dropdown-content">
             <button class="dropbtn">@Html.ActionLink(product.ProductName, "ActionName", "ControllerName", new { id = Product.CategoryID, title = Product.ProductName }, null)</button>
            </div>
         </div>
      }
   }
@foreach(类别中的变量类别)
{
@Html.LabelFor(category.CategoryName)
@foreach(类别产品中的var产品)
{
@ActionLink(product.ProductName,“ActionName”,“ControllerName”,新的{id=product.CategoryID,title=product.ProductName},空)
}
}

我制作了一个
CategoryLayout.cshtml
局部视图,它工作了,现在我可以看到下面有产品的类别所有数据来自
SQL
,这是代码:

@model IEnumerable<MVCOnlineShop.Models.Category>
@{
    ViewBag.Title = "CategoryLayout";
}

@foreach (var Category in Model)
{
    <li>
        <div class="dropdown">
            <button class="dropbtn">
                @Html.ActionLink(Category.CategoryName,
"ProductList", new { Category = Category.CategoryID }, new { @style = "color:#1ABC9C;text-decoration:none;" })
        </button>

        <div class="dropdown-content">
            @foreach (var Product in Category.Products)
            {
                @Html.ActionLink(Product.ProductName,
     "Details", new { id = Product.CategoryID }, new { style = "text-decoration:none;" })
            }
        </div>
    </div>
</li>
}
@model IEnumerable
@{
ViewBag.Title=“CategoryLayout”;
}
@foreach(模型中的var类别)
{
  • @Html.ActionLink(Category.CategoryName, “ProductList”,新的{Category=Category.CategoryID},新的{@style=“color:#1ABC9C;文本装饰:无;“}) @foreach(类别产品中的var产品) { @Html.ActionLink(Product.ProductName, “细节”,新的{id=Product.CategoryID},新的{style=“text-decoration:none;”}) }
  • }
    您在类别中有值?添加您的类别模型我要求您在view@foreach(类别中的var Category)上检查断点,您是否获得值获取此错误:解析器错误描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件。分析器错误消息:“@”字符后出现意外的“foreach”关键字。一旦进入代码,您就不需要在“foreach”之类的构造前面加“@”前缀。希望这能帮助您解决问题,兄弟:)-->
    @model IEnumerable<MVCOnlineShop.Models.Category>
    @{
        ViewBag.Title = "CategoryLayout";
    }
    
    @foreach (var Category in Model)
    {
        <li>
            <div class="dropdown">
                <button class="dropbtn">
                    @Html.ActionLink(Category.CategoryName,
    "ProductList", new { Category = Category.CategoryID }, new { @style = "color:#1ABC9C;text-decoration:none;" })
            </button>
    
            <div class="dropdown-content">
                @foreach (var Product in Category.Products)
                {
                    @Html.ActionLink(Product.ProductName,
         "Details", new { id = Product.CategoryID }, new { style = "text-decoration:none;" })
                }
            </div>
        </div>
    </li>
    }