Вы наверняка использовали бы здесь RouteConstraint
, в ваших маршрутах вы могли бы иметь что-то вроде этого:
routes.MapRoute("CustomProductUrl",
"{Product}",
new { controller = "Product", action = "Index" },
new { Product= new ProductConstraint() }
);
тогда в вашем классе ProductConstraint у вас будет что-то следующее:
public class ProductConstraint : IRouteConstraint
{
public ProductConstraint ()
{
}
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
//do your logic in here to split the name and the id and amke sure it is valid data
//if valid return true;
//else false;
}
}
, наконец, в сигнатуре метода действия Index (или действия в маршруте) возьмите строку - и затем разбейте ее и обработайте соответствующим образом
, дайте мне знать, если естьлюбые вопросы
Пол