首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合C1 routes.MapPageRoute -指向页面

问复合C1 routes.MapPageRoute -指向页面
EN

Stack Overflow用户
提问于 2013-09-21 04:56:00
回答 1查看 430关注 0票数 0

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

  1. 我可以让这个MVC路由工作,但问题是它是直接到视图的路径而不是包含主布局等的页面。routes.MapRoute(“作业-列表”、“作业-详细/{类别}/{title}/{id}”、新的{控制器= "JobSearchModule“、action = "JobDetail”});
  2. 我试着路由到一个页面,该页面如下所示。这是不可行的,简单的去了一页找不到。Routes.MapPageRoute(“职务-列表”、“职务详细信息/{类别}/{标题}/{id}”、“~/求职者/求职/职务详细信息”);
  3. 我猜想这可能是因为这不是一条物理路径,还有一些其他的路由在引擎盖下运行。因此,我通过向物理页面添加一个路由来测试这个问题,如下所示。routes.MapPageRoute("jobDetail2Route“、”作业详细/{类别}/{title}/{id}“、"~/Text.aspx");

这让我想到复合c1可能有一个C1路由映射到的物理URL。我确信我在某个时候看到了与/Renderers/Page.aspx有关的东西。有人知道我是否可以以这种方式进入物理页面吗?

谢谢

大卫

好的,还有一些进一步的信息。

  1. 我意识到我可以用/Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e-d94f1402bc80.得到网址这个URL运行良好,所以我尝试向这个URL添加一个新的路径,如下所示.

"~/Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e-d94f1402bc80");routes.MapPageRoute(“作业列表”、“作业详细信息/{类别}/{title}/{id}”)

不幸的是,这还是行不通的。我在Renderers/Page.aspx值上有一个错误,不能为null。参数名称: pageUrlData

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-25 09:00:54

与其使用像~/Renderers/Page.aspx?pageId=d622ab3b-2d33-4330-9e6e-d94f1402bc80这样的页面URL的内部表示,不如使用像/my/page/url这样的公共表示形式。

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

代码语言:javascript
复制
using Composite.Data;
...
public string GetPageUrl( Guid pageId )
{
    using (var c = new DataConnection())
    {
        PageNode p = c.SitemapNavigator.GetPageNodeById(pageId);
        return p.Url;
    }
} 

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

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

有了上述方法之后,您应该能够这样做:

代码语言:javascript
复制
routes.MapPageRoute(
   "Job-Listing", 
   "job-detail/{category}/{title}/{id}", 
   GetPageUrl(Guid.Parse("d622ab3b-2d33-4330-9e6e-d94f1402bc80")); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18929050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档