2

大家好,我正在为 dotnetnuke 7 创建一个产品目录模块。出于功能考虑,当用户选择一个项目时,它会转到产品详细信息页面并在 url 中附加该项目的 id 号,以便页面知道要加载什么产品,相当标准的功能。但是,我的客户希望拥有用户友好的 url,因此用户可以访问 www.domain.com/product.aspx?id=123,而不是 www.domain.com/productname。

我已经在主机设置中启用了用户友好的 url,如果有一种方法可以在站点管理员将项目添加到目录时直接通过代码添加到此列表中,那么他们就不必单独将其添加到列表中在主机设置中。只是为了简化流程。我猜该列表存储在数据库中某处的表中,但找不到。

有任何想法吗?

4

2 回答 2

1

这通常通过 DNN 的 URL Master 工具中的其他 URL 提供程序来完成。URL Master 已集成到 DotNetNuke 7.1(即将发布)中,因此您可能只想等待该版本并使用这些工具构建提供程序。

于 2013-07-08T14:06:19.113 回答
0

理想情况下,如果它是您自己的模块,您将实现在模块中直接使用有意义的 URL 名称而不是 ID 的能力。

如果它不是你的模块,或者你想要比这更友好的 URL,你可以实现一个特定于模块的 URL Provider。这将允许您从 URL 中删除页面名称,并确保生成的 URL 与您最终的 URL 匹配(通过简单的重写映射您无法获得),以及其他好处。

但是,最简单的方法可能是按照您的要求,直接将 URL 添加到友好 URL 映射列表中。这些映射存储在网站根目录的 XML 文件中,SiteUrls.config. 您可能应该看一下主机设置模块的代码,看看是否有一个很好的 API 来管理该文件,或者它是否是直接的文件/XML 操作。

于 2013-07-09T21:44:56.677 回答