首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Umbraco动态页面

Umbraco动态页面
EN

Stack Overflow用户
提问于 2013-01-19 21:03:30
回答 2查看 2.2K关注 0票数 0

我希望有人能在我计划做的事情上给我一些帮助…

我想创建一个动态的"City.aspx“页面,它接受一个url参数,并根据特定的城市动态生成一个页面。

例如,如果有人调用"City.aspx?city=london“,那么它将使用与伦敦相关的自定义内容构建一个页面,如果有人将该页面称为"City.aspx?city=manchester”,它将使用与曼彻斯特相关的内容构建页面。

我已经研究了构建sitemap和UrlRewriting,我非常确定我可以使用参数重定向到这个新页面,但不知道下一步需要做什么。

有谁能帮帮忙吗?

谢谢

TaxiRoute

EN

回答 2

Stack Overflow用户

发布于 2013-01-21 00:20:17

我建议您创建像/city/london/1234这样的url,其中最后一部分是您的文档的ID。通过使用Umbraco中内置的UrlRewrite函数,您可以在内部将url重写为/config/Urlewriting.config中的/city.aspx?name=london&id=1234,您可以添加重写规则。对于上面的代码,你需要类似这样的东西:

代码语言:javascript
复制
 <add name="city_rewrite"
       virtualUrl="^~/city/(.*)/(.*)"
       rewriteUrlParameter="ExcludeFromClientQueryString"
       destinationUrl="~/city.aspx?name=$1&amp;cityid=$2"
       ignoreCase="true" />

一旦解决了这个问题,您就可以在City.aspx宏的代码隐藏中使用以下代码来获取相应的文档。

代码语言:javascript
复制
    // get the city Document Id from the querystring
    string cityID = HttpContext.Current.Request.QueryString["cityid"];

    if (!string.IsNullOrWhiteSpace(cityId))
    {
      // get the cityNode
      Node cityNode = new Node(cityId);
      // do whatever you want with this node, like display it's data
    }

这是一个XSLT宏,当然你也可以用.NET或Razor-code来做同样的事情。

票数 2
EN

Stack Overflow用户

发布于 2013-01-20 07:44:52

如果您有每个城市动态的标准Umbraco内容之外的信息,那么只需编写一个或多个宏(或部分视图?)通过“城市”get参数获取动态数据。然后,您可以使用UrlRewriting使URL看起来像标准网页(/city/LONDO.ASPX)。UrlRewriting将使该URL显示给服务器,就好像它是这样的: /city.aspx?city=london。(http://our.umbraco.org/wiki/reference/packaging/package-actions/community-made-package-actions/add-an-url-rewrite-rule)

在宏中,您可以通过括号语法(http://our.umbraco.org/wiki/reference/templates/umbracomacro-element/macro-parameters/advanced-macro-parameter-syntax)将"city“get参数作为宏参数传递给宏。或者,您可以通过请求变量(razor)或Umbraco.library (XSLT)来获取城市参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14414680

复制
相关文章

相似问题

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