你好,请教个问题,我下面的代码
<%=Html.ActionLink(p.ProductName,"Detail","Products" ,new {id=p.ProductID}) %>
ProductsController里的代码
public void Detail(int id)
{
Product product = db.GetProductById(id);
RenderView("Detail", product);
}
Global.asx里的
routes.Add(new Route("{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { action = "Index", id = "" }),
});
为什么我的参数必须用 (<%=Html.ActionLink(p.ProductName,"Detail","Products" ,new {id=p.ProductID}) %>)id名字才能传进Controller的Detail呢?
"id"这个参数名也许在asp.net mvc在默认情况下是受到特殊对待,代码还没有公开不是很好检查这个问题
--引用--------------------------------------------------
王德水:
你好,请教个问题,我下面的代码
<%=Html.ActionLink(p.ProductName,"Detail","Products" ,new {id=p.ProductID}) %>
ProductsController里的代码
public void Detail(int id)
{
Product product = db.GetProductById(id);
RenderView("Detail", product);
}
Global.asx里的
routes.Add(new Route("{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { action = "Index", id = "" }),
});
为什么我的参数必须用 (<%=Html.ActionLink(p.ProductName,"Detail","Products" ,new {id=p.ProductID}) %>)id名字才能传进Controller的Detail呢?
--------------------------------------------------------
因为在你的Controller配置里写了默认的参数名称为id,你也可以改成别的,建议不要改。