【发布时间】:2017-07-20 11:33:06
【问题描述】:
我正在处理我的 MVCOnlineShop 项目,我通过创建 partial view CategoryLayout.cshtml 在主页上显示了类别:
@model IEnumerable<MVCOnlineShop.Models.Category>
@{
ViewBag.Title = "CategoryLayout";
}
<ul class="nav navbar-nav">
@foreach (var Category in Model)
{
<li>
@Html.ActionLink(Category.CategoryName,
"ProductList", new { Category = Category.CategoryName })
</li>
</ul>
并添加到_Layout.cshtml:
@Html.Partial("CategoryLayout")
现在我想按主页上的任何类别,它会带我到该类别的产品,我创建了这个partial viewProductList.cshtml:
@model MVCOnlineShop.Models.Category
@{
ViewBag.Title = "ProductList";
}
<ul>
@foreach (var Product in Model.Products)
{
<li>
@Html.ActionLink(Product.ProductName,
"Details", new { id = Product.CategoryID })
</li>
}
</ul>
这是我的HomeController:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCOnlineShop.Models;
namespace MVCOnlineShop.Controllers
{
public class HomeController : Controller
{
OnlineStoreEntities storeDB = new OnlineStoreEntities();
//
// GET: /Home/
public ActionResult Index()
{
var Categories = storeDB.Categories.ToList();
return View(Categories);
}
//
// GET: /Home/Browse
public ActionResult Browse(string Category)
{
// Retrieve Category and its Associated Products from database
var CategoryModel = storeDB.Categories.Include("Products")
.Single(g => g.CategoryName == Category);
return View(CategoryModel);
}
//
// GET: /Home/Details
public ActionResult Details(int id)
{
var Product = storeDB.Products.Find(id);
return View(Product);
}
//
// GET: /Home/Browse?Category=Games
public ActionResult CategoryLayout()
{
var Categories = storeDB.Categories.ToList();
return PartialView("CategoryLayout", Categories);
}
}
}
问题:我如何在主页上按一个类别,这将带我进入显示该类别产品的页面,我该怎么做?
提前致谢 :)
【问题讨论】:
-
这段代码你遇到了什么问题?
-
您想在同一页面或新的不同页面中显示特定类别的产品?
-
在新的不同页面@BasantaMatia
-
@ChetanRanpariya ,没有问题,我在主页上有类别及其工作,但只需要知道如何将每个类别的产品链接到另一个页面,所以我可以在另一个页面上看到此类产品
-
那你为什么要创建一个局部视图
ProductList.cshtml。它应该是一个主视图,您可以在其中将产品显示到特定类别。 您在哪里获取某个类别的产品的操作方法??
标签: c# html asp.net-mvc controller actionresult