我會建議您創建URL的/ city/london/1234,其中最後一部分是您的文檔的ID。 通過在Umbraco中使用內置的UrlRewrite功能,您可以將url內部重寫爲/city.aspx?name=london & id = 1234 在/config/Urlewriting.config中,您可以添加重寫規則。 對於上面你需要的東西是這樣的:
<add name="city_rewrite"
virtualUrl="^~/city/(.*)/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/city.aspx?name=$1&cityid=$2"
ignoreCase="true" />
一旦此整理出來,你可以在你使用下面的代碼代碼隱藏掉City.aspx宏得到相應的文件。
// 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
}
這是一個.NET宏,但當然你也可以用XSLT或Razor代碼做同樣的事情。
城市和身份證不會是多餘的嗎?當然,在宏中更容易編碼。 – BeaverProj
城市和ID確實是多餘的,但對於SEO這個城市的名稱更好,如果您想從Umbraco獲取節點,使用節點ID會更容易,因爲ID是唯一的,節點名稱沒有獨一無二。 –