【问题标题】:Composite C1 routes.MapPageRoute - Directing to a pageComposite C1 routes.MapPageRoute - 指向页面
【发布时间】:2013-09-21 04:56:00
【问题描述】:

我一直在添加一些不起作用的自定义路线

  1. 我可以让这个 MVC 路由正常工作,但问题是它直接路由到视图而不是包含主布局等的页面。 routes.MapRoute("Job-Listing", "job-detail/{category}/{title}/{id}", new { controller = "JobSearchModule", action = "JobDetail" });

  2. 我尝试路由到如下所示的页面。这不起作用,简单地转到未找到的页面。 routes.MapPageRoute("Job-Listing", "job-detail/{category}/{title}/{id}", "~/job-seekers/job-search/job-detail");

  3. 我猜这可能是因为这不是物理路径,并且在引擎盖下还有其他一些路由。所以我通过向物理页面添加路由来测试这一点,如下所示。 (这条路线有效) routes.MapPageRoute("jobDetail2Route", "job-detail/{category}/{title}/{id}", "~/Text.aspx");

这让我想到复合 c1 可能具有 C1 路由映射到的物理 URL。我确信我在某些时候看到了与 /Renderers/Page.aspx 相关的内容。有谁知道我是否可以通过这种方式路由到物理页面?

谢谢

大卫

好的,请提供更多信息。

  1. 我意识到我可以使用 /Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e-d94f1402bc80 获取 URL。此 URL 工作正常,因此我尝试向此 URL 添加新路由,如下所示...

routes.MapPageRoute("Job-Listing", "job-detail/{category}/{title}/{id}", "~/Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e- d94f1402bc80");

不幸的是,这仍然不起作用。我在 Renderers/Page.aspx 上遇到错误 值不能为空。 参数名称:pageUrlData

有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing c1-cms


    【解决方案1】:

    而不是使用像~/Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e-d94f1402bc80 这样的页面 URL 的内部表示,您应该使用像 /my/page/url 这样的公共表示。

    要从页面 id 获取公共表示,您可以使用如下方法:

    using Composite.Data;
    ...
    public string GetPageUrl( Guid pageId )
    {
        using (var c = new DataConnection())
        {
            PageNode p = c.SitemapNavigator.GetPageNodeById(pageId);
            return p.Url;
        }
    } 
    

    这将为您提供具有所提供 ID 的页面的公共 URL。如果您正在运行具有不同内容语言的网站,此方法将自动获取与您的 MVC 函数正在运行的页面语言匹配的 URL。

    如果您需要显式更改此 URL 的语言,请使用重载 DataConnection(CultureInfo culture) 而不是默认构造函数。

    使用上述方法,您应该能够做到这一点:

    routes.MapPageRoute(
       "Job-Listing", 
       "job-detail/{category}/{title}/{id}", 
       GetPageUrl(Guid.Parse("d622ab3b-2d33-4330-9e6e-d94f1402bc80")); 
    

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多