c# - How to create a friendly URL with custom page name in DotNetNuke? -


background

dotnetnuke supports ability give url custom page name, make url more human friendly, e.g. instead of /page/itemid/14/default.aspx, can have /page/itemid/14/my-article.aspx. api achieving via dotnetnuke.common.globals.friendlyurl(which calls dotnetnuke.services.url.friendlyurl.friendlyurlprovider.friendlyurl).

this friendlyurl method has overloads take path , pagename parameter, can specify meaningful querystring parameters via path , friendly page name via pagename. following example bruce chapman, might this:

friendlyurlprovider.instance().friendlyurl(tab, "~/default.aspx?tabid=" + tab.tabid, "my_custom_page_name.aspx") 

problem

my issue approach url gets parameters directly specify in path parameter. using standard, non-friendly approach globals.navigateurl, i'll additional parameters based on current context , portal's settings (most notably, language). i'd prefer not have reimplement/copy navigateurl implementation, don't see other choice. bruce has an issue in dnn's gemini issue tracker add pagename parameter globals.navigateurl, it's been sitting there quite while without getting attention.

another issue have hard-code ".aspx" onto page name, rather letting friendly url provider decide extension should (or whether go without extension altogether).

am missing something, or copying core navigateurl best option getting full support friendly page names in urls?

one slight enhancement above call globals.applicationurl(tabid) "~/default.aspx?tabid=x" part of url. still have manually add language parameter, though...


Comments