大家好我们正在为dotnetnuke 7创建一个产品目录模块。为了功能,当用户选择一个项目时,它会进入产品详细信息页面,并为该项目添加一个带有ID号的URL,以便页面知道什么产品加载,相当标准的功能。但是,我的客户希望拥有用户友好的网址,所以请访问www.domain.com/product.aspx?id=123,用户可以访问www.domain.com/productname。
我在主机设置中启用了用户友好的网址,并且如果有一种方法可以在网站管理员将项目添加到目录时通过代码直接添加到此列表,那么他们就会徘徊,这样他们就不必将其添加到列表中的列表在主机设置中。只是为了简化流程。我猜这个列表存储在某个地方的数据库中,但找不到它。
有什么想法吗?
答案 0 :(得分:1)
这通常通过DNN的URL Master工具中的其他URL提供程序来完成。 URL Master已集成到DotNetNuke 7.1中(即将发布),因此您可能只想等待该版本并使用这些工具构建提供程序。
答案 1 :(得分:0)
理想情况下,如果它是您自己的模块,您将实现在模块中直接使用有意义的URL名称而不是ID的能力。
如果它不是您的模块,或者您想要比这更友好的网址,则可以实施URL Provider that is specific to the module。这将允许您从URL中删除页面名称,并确保生成的URL与您最终得到的URL(简单的重写映射无法获得)以及其他好处。
但是,最简单的方法可能是按照您的要求进行操作,并直接将URL添加到友好URL映射列表中。这些映射存储在网站根目录SiteUrls.config
中的XML文件中。您可能应该查看Host Settings模块的代码,看看是否有一个很好的API来管理该文件,或者它是否是直接文件/ XML操作。