404 and custom Parameters

September 28, 2011 Digital Experience

In Sitefinity 4 we support parameters in the URL , not only in the query string. The only problem for now is that we have to be able to tell the difference between a valid URL and an invalid one. But when the URL does contain parameters, it gets a bit complicated. The only way to do it is to know if  the parameters are handled and by what. In Sitefinity 4.2 SP1 we introduce a way to do it. There's one thing that gets affected though and that's the custom controls. So if you have a custom control that relies on some parameter or parameters in the URL, you have to add this line of code to indicate that you have processed a specific parameter : 

RouteHelper.SetUrlParametersResolved();


This will indicate that at least one parameter is handled. If you skip it and no other control recognize the parameter it will throw a 404 error.

This feature depends also on some settings :

Page->Title & Properties ->Allow parameter validation. This has to be checked if you want to have a page with parameters , other way it will throw 404 if the page is requested with additional parameters in the URL.

You can also turn off this feature from

Settings -> Advanced Settings -> Pages -> EnableBackwardCompatabilityForPagesUrls. If you click this it will return the previous page behaviour.

For your convenience we've prepared a brief example demonstrating how two user controls can communicate with each other using UrlParameters.You can download the sample from here.

 

The Progress Team