Если вы знаете, как будут выглядеть ваши параметры, вы можете добавить ограничение маршрута , чтобы различать оба маршрута
Например, если ваш сериал 1234-1234-1234 и ваша категория не такая:
routes.MapRoute(
"serialonly", // Route name
"DataWarehouse/Distribution/{serialNo}",
new { controller = "DataWarehouse",
action = "Distribution",
category= UrlParameter.Optional,
serialNo = UrlParameter.Optional },
new{serialNo = @"\d{4}-\d{4}-\d{4}"}
);
routes.MapRoute(
"test", // Route name
"DataWarehouse/Distribution/{category}/{serialNo}",
new { controller = "DataWarehouse",
action = "Distribution",
category= UrlParameter.Optional,
serialNo = UrlParameter.Optional },
,
new{serialNo = @"\d{4}-\d{4}-\d{4}"}
);