我在RouteConfig.cs中有这个:
routes.MapRoute(
name: "Promo",
url: "Promo/{slug}",
defaults: new { controller = "Promo", action = "Index", slug = UrlParameter.Optional }
);
在PromoController.cs中:
[ActionName("Index")]
public ActionResult Index( string slug = "" )
{
// code that uses slug
}
然后在cshtml页面中,我试图这样做:
@{Html.RenderAction("Index", "Promo", "drink");}
但"饮料"参数未传递给我的控制器。
答案 0 :(得分:2)
您必须指定"drink"
应传递给slug
参数:
@{Html.RenderAction("Index", "Promo", new { slug = "drink" });}
只要您停留在同一个控制器中,就可以省略"Promo"
,但始终需要操作名称。
答案 1 :(得分:1)
这应该有效:
@{Html.RenderAction("Index", "Promo", new { slug = "drink"});}