我在MVC中使用Umbraco。
我在MVC umbraco中创建了一个与查询字符串参数
一起使用的动态页面http://www.example.com/City?id=1&type=9
http://www.example.com/City?id=5&type=6
http://www.example.com/City?id=6&type=4
在Umbraco内部我有一个名为City的内容页面(连同它的DocumentType和模板),在我的MVC项目中,Controller和Action Method名称是City和City(action方法接受参数id和类型)。
现在我需要创建多个页面,共享页面的功能" City" e.g
http://www.example.com/City/A?id=1&type=9
http://www.example.com/City/B?id=5&type=6
http://www.example.com/City/C?id=6&type=4
每个页面都需要显示相同的动态内容,具体取决于Querystring参数以及我希望由CMS管理的一些修复内容。
如何在Umbraco中创建上述页面? 如何创建上面的Url? 如何在我原来的#34; City""网页?
我是Umbraco的新手所以请指教。
答案 0 :(得分:0)
您应该阅读路线劫持文档:https://our.umbraco.org/documentation/reference/routing/custom-controllers
网上也有不少教程和博客文章处理这类事情,所以值得进行搜索。
答案 1 :(得分:0)
在config / UrlRewriting.config中,您可以添加一个简单的规则:
<add name="myRule"
virtualUrl="^~/city/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/city?page=$1"
ignoreCase="true" />
然后它将在umbraco中读取City页面并且还将?page=
查询字符串。
因此http://www.example.com/city/A?id=1&type=9
将会像http://www.example.com/city?page=A&id=1&type=9
一样阅读您的网页,但网址仍为http://www.example.com/city/A?id=1&type=9
要创建一个更漂亮的网址,您可以使用:
<add name="myPrettyRule"
virtualUrl="^~/city/(.*)/(.*)/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/city?page=$1&id=$2&type=$3"
ignoreCase="true" />
您的网址将如下所示http://www.example.com/city/A/1/9