带有参数的面包屑

Breadcrumbs with a parameter

当地址类似于 http://localhost:53732/Details/Index/1 时,我的面包屑未显示在页面上的原因可能是什么

但是如果我像这样手动重写地址就可以了 http://localhost:53732/Details/Index?id=1

这是我的 Mvc.sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalization="true">
  <mvcSiteMapNode title="Home" controller="Home" action="Index">
    <mvcSiteMapNode title="Listing" controller="Listing" action="Listing" key="Details">
    </mvcSiteMapNode>
  </mvcSiteMapNode>
</mvcSiteMap>

这是 returns 我的视图 Details/Index:

的方法
namespace OurNewShop.Controllers
{
    public class DetailsController : Controller
    {
        [MvcSiteMapNode(Title = "DetailsPage", ParentKey = "Details")]
        public ActionResult Index(int id)
        {
            using (ProductContext context = new ProductContext())
            {
                Product pr = context.Products.Include(y => y.ProductImages).FirstOrDefault(y => y.ProductId == id);
                ViewBag.ImagePath = Constants.Constants.ImagePath;
                return View(pr);
             });
            }
        }
    }
}

看看有什么解决方法吗?

必须在 web.sitemap 内的 mvcSiteMapNode 中提及可选参数,以使面包屑和导航正常工作。尝试包括 "id" 和 "preservedRouteParameters",如下所示。

<mvcSiteMapNode title="Home" controller="Home" action="Index" id="*" preservedRouteParameters="id"/>