Вероятно, вы не можете справиться только с маршрутами. Вам необходимо проверить его внутри действия Edit
и перенаправить на действие Index
в случае строкового значения, иначе обработайте действие редактирования.
ограничение маршрутизации
public class IsIntegerConstraint : IRouteConstraint
{
#region IRouteConstraint Members
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
int result;
return int.TryParse(values[parameterName].ToString(), out result);
}
#endregion
}
маршруты
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new { id = new IsIntegerConstraint() }
);