I tried to catch 404 errors like this... But
My routes:
routes.Add("Order", new LowercaseRoute("Order/{action}/{id}",
new RouteValueDictionary(
new
{
controller = "Order",
action = "",
id = UrlParameter.Optional
}),
new MvcRouteHandler()));
routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
new
{
controller = "Pages",
action = "Http404",
}),
new MvcRouteHandler()));
Why route NotFound - don't catch all 404 error. And When i try to upload to my hosting and try 404 i get this error (NotFound route not work at all) 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
I work with this all day, but nothig... please help me
When i try to load http://localhost:11415/order/ - fail (with error The RouteData must contain an item named 'action' with a non-empty string value.)
Because of this:
new { controller = "Order", action = "" , id = UrlParameter.Optional }
You need to specify an action.
When i try to load http://localhost:11415/Images/ - fail with error File does not exist
If there is Images
folder on your server, then it will "intercept" requests not letting them through to the MVC pipeline.
I make this:
routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
new
{
controller = "Pages",
action = "Http404",
}),
new MvcRouteHandler()));
and this in web.config
<customErrors mode="On">
</customErrors>
and
<modules runAllManagedModulesForAllRequests="true"/>
<handlers/>
<httpErrors>
<remove statusCode="404"/>
<error statusCode="404" path="/page/http404/" responseMode="ExecuteURL"/>
</httpErrors>
This works how i want.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.