1
 routes.MapRoute(
                 "RouteSample",
               "Controler/Action/{sampleId}",
               new { controller = "Controller", action = "Action", sampleId=     UrlParameter.Optional }
);

<a href="@Url.RouteUrl("RouteSample", new { sampleId= 5 })> sample </a>


ActionResult Action(var sampleId)
{
         // Here I always get sampleId as null. I didn't get any value
         // I always get value only by RouteData.Values["Id"].. and another doubt is I have parameter name is sampleId. But I can get data only by mentioning "Id" in RouteData values.. why is like that ?
}

我总是只通过 RouteData.Values["Id"].. 获得价值。另一个疑问是我的参数名称是 sampleId。但是我只能通过在 RouteData 值中提及“Id”来获取数据。为什么会这样?

4

1 回答 1

1

我认为你routes.MapRoute的属性是错误的。试试这个。

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{sampleId}",
                defaults: new { controller = "Home", action = "Index", sampleId = UrlParameter.Optional }
            );
于 2013-10-18T09:01:48.553 回答