为什么路由值没有传递给 MVC 控制器

本文关键字:MVC 控制器 路由 为什么 | 更新日期: 2023-09-27 18:37:11

在这里,我正在迭代我的ViewModel中的产品:

@foreach (var p in Model.Products)
{
    Html.RenderPartial("ProductSummary", p);
    <p>@Html.ActionLink("Details...", "Details", "Product", new { p.ProductID }, null)</p>
}

这是我在产品控制器中的详细信息操作:

public ActionResult Details(int id = 1)
{
    return View();
}

id总是有一个默认值 = 1,但我需要选择ProductID.我做错了什么?

为什么路由值没有传递给 MVC 控制器

new { p.ProductID }将创建一个具有ProductID属性的匿名类型。

路由值必须匹配,因此请使用 new { id = p.ProductID } 填充id参数。