1

我有一个 Dotnetnuke CMS,我想在其中实现路由。我正在使用 asp.net 4.0

我已经成功地在普通 ASP.Net WebForms 上实现了路由,但看不到在 Dotnetnuke 上实现相同的方法,因为 Dotnetnuke 有虚拟 .aspx 页面,并且路由需要文件的物理位置。

我正在使用以下代码在 ASP.Net Webforms 上进行路由。

  Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        RouteTable.Routes.MapPageRoute("ArticlePage", "sample/{articleid}", "~/article.aspx")
    End Sub

但同样不适用于 Dotnetnuke。任何人都可以帮助我。

4

1 回答 1

1

在 DNN 7+ 中,您可以使用 IServiceRouteMapper,类似于以下代码

using DotNetNuke.Web.Api;

namespace Christoc.Modules.dnnsimplearticle.services
{
    public class DnnSimpleArticleRouteMapper : IServiceRouteMapper
    {

        public void RegisterRoutes(IMapRoute mapRouteManager)
        {
            mapRouteManager.MapHttpRoute("DnnSimpleArticle","Default", "{controller}.ashx/{action}",
                                     new[] { "Christoc.Modules.dnnsimplearticle.services" });

            //mapRouteManager.MapHttpRoute("MyServices", "default", "{controller}/{action}", new {"MyServices"});
        }
    }

https://dnnsimplearticle.codeplex.com/SourceControl/latest#cs/services/DnnSimpleArticleRouteMapper.cs中提取

于 2013-09-19T19:14:48.113 回答