07-23-2023, 07:50 AM
I am creating an ASP.NET MVC 5 application and I have some issues with routing. We are using the attribute `Route` to map our routes in the web application. I have the following action:
[Route("{type}/{library}/{version}/{file?}/{renew?}")]
public ActionResult Index(EFileType type,
string library,
string version,
string file = null,
ECacheType renew = ECacheType.cache)
{
// code...
}
We only can access this URL if we pass the slash char `/` in the end of `url`, like this:
type/lib/version/file/cache/
It works fine but does not work without `/`, I get a `404` not found error, like this
type/lib/version/file/cache
or this (without optional parameters):
type/lib/version
I would like to access with or without `/` char at the end of `url`. My two last parameters are optional.
My `RouteConfig.cs` is like this:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
}
}
How can I solve it? Make the slash `/` be optional too?
[Route("{type}/{library}/{version}/{file?}/{renew?}")]
public ActionResult Index(EFileType type,
string library,
string version,
string file = null,
ECacheType renew = ECacheType.cache)
{
// code...
}
We only can access this URL if we pass the slash char `/` in the end of `url`, like this:
type/lib/version/file/cache/
It works fine but does not work without `/`, I get a `404` not found error, like this
type/lib/version/file/cache
or this (without optional parameters):
type/lib/version
I would like to access with or without `/` char at the end of `url`. My two last parameters are optional.
My `RouteConfig.cs` is like this:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
}
}
How can I solve it? Make the slash `/` be optional too?