C# 在引导MVC中将数据从SQL数据库提取到html悬停下拉列表
我正在开发我的MVCOnlineShop,这是我迄今为止所做的: 我以前在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>
视图
中编写了一个代码,这样我就可以将产品链接到它们的类别,并且它起作用了,所有类别和产品数据库都在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>
}