我在Umbraco 7中创建了一个页面。
我需要将id传递给此页面,我想在模板中读取该参数。
如果我使用这个网址:http://www.example.com/product?id=10我可以使用Request [“id”]访问模板内的id,这很好。但问题是我想让我的网址像http://www.example.com/product/10但是如果我使用它我收到:“404 - 找不到文件或目录。”。
我实际上认为它可以通过Umbraco默认路由解决,但事实并非如此。我也试过IIS URL重写,但我相信它应该是Umbraco更好的方式来处理它与ASP.NET MVC路由一样。
您可以使用此重写规则在请求到达Umbraco之前处理路由。
<rule name="Product Rewrite" stopProcessing="false">
<match url="product/([0-9]+)/"/>
<action type="Rewrite" url="/product/?id={R:2}"/>
</rule>
另一种方法是实现自定义ContentFinder
,使您能够“自己”找到内容。如果您可以通过某种方式从名称中确定ID,则可以为您的产品制作更漂亮的URL。此链接https://24days.in/umbraco-cms/2014/urlprovider-and-contentfinder/提供了有关如何实施ContentFinder
的一些信息。