0

我有一个 Episerver 站点,它JobDetailsPageController带有一个Index方法,该方法接受一个jobId参数并创建一个包含有关该作业的一些详细信息的视图。网址看起来像这样:https://hostname/<root-depending-on-site-tree>/jobs/?jobid=44

我想要的是在表单上有网址.../jobs/manager-position-telco-44,基本上是创建一个职位名称并附加 ID。我过去曾在非 Episerver 站点上使用标准 ASP.NET MVC 属性路由来完成此操作,但 EpiServer 有自己的路由,我不太了解也无法弄清楚

此外,在斜杠后添加非查询字符串始终将我(毫不奇怪)发送到 404 页面,因此我需要以某种方式自定义此行为。我需要使用 EpiServers 标准路由以在正确的“父级”处结束,但忽略后面部分(漂亮的部分)。

是否可以在 EpiServer 的页面树中的普通页面上创建这样的 url?我知道可以创建静态路由,但是这个节点可以像任何其他页面一样移动,所以我无法避免 EpiServer。

4

2 回答 2

3

请参阅此博客文章。您正在寻找的是部分路由

于 2016-11-02T15:11:11.160 回答
1

@johan 是对的,部分路由是这样做的一种方式。只是想添加其他可能的解决方案,这些解决方案可能符合您的需求,也可能不符合您的需求。

将数据作为内容导入

您可以考虑直接从内容树中的任何来源导入招聘广告,而不是动态提供内容,作为特定根页面下方的单独页面。这会给你带来很多好处——页面会被缓存,它会支持多种语言,编辑者可以直接在 EPiServer CMS 中看到内容,数据可以手动调整等等。

如果您的数据不经常更改并且您需要为编辑提供一种手动创建新招聘广告的方法,这将是一个很好的解决方案。

实施您自己的内容提供者

将动态数据提供给 EPiServer 的另一种方法是编写您自己的自定义内容提供程序。您可以在此处找到文档:http ://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/7/Content-Providers/Content-Providers/

这个解决方案需要更多的编码并且更复杂,但它也有一些好处。如果需要,不仅可以提供来自外部数据源的内容,还可以通过直接在 EPiServer UI 中更改值来更新该数据。

于 2016-11-03T13:11:24.453 回答