我正在尝试注册路线如下:
routes.MapRoute(
"SaleReport", // Route name
"SaleReport/GetDataConsolidated/{type}",
new { controller = "SaleReport",
action = "GetDataConsolidated",
type = UrlParameter.Optional});
并在控制器中
public ActionResult GetDataConsolidated(string type)
{
return Content("Report Type = " + type);
}
我称之为:localhost:56674 / SaleReport / GetDataConsolidated / Sale
但问题是type的值始终为null。 我做错了什么?
答案 0 :(得分:0)
这可能只是.MapRoute(...)
来电的顺序。
在“默认”.MapRoute(...)
{controller}/{action}
来电之前拨打“SaleReport”.MapRoute(...)
来电,因为它更具体。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "SaleReport",
url: "SaleReport/GetDataConsolidated/{type}",
defaults: new { controller = "SaleReport", action = "GetDataConsolidated", type = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
答案 1 :(得分:0)
是否有特定需要定义另一个地图路线?
它应该使用默认路由
routes.MapRoute(
"SaleReport", // Route name
"SaleReport/GetDataConsolidated/{type}",
new { controller = "SaleReport",
action = "GetDataConsolidated",
type = UrlParameter.Optional});
删除以上路线, 只需改变下面的行动方法
public ActionResult GetDataConsolidated(string id)
{
return Content("Report Type = " + id);
}
这将有效,谢谢。