【问题标题】:Create the desired URL - Should I Loop?创建所需的 URL - 我应该循环吗?
【发布时间】:2010-11-23 07:18:19
【问题描述】:

我正在考虑为工作实践和我的一个小项目编写一个电子商务平台。我正处于我想开始编写 URL 和 SEO Friednly URL 的阶段。

我的问题是我已经编写了具有无限类别/子类别的系统,并且使我的导航给我带来了一些问题。

我理想的网址是:

http://mydomain.com/products/first-category/second-category/productname.aspx

为了实现这一点,我正在考虑循环回 parentid= 的数据库。但我觉得这不是最佳实践,并且对每个类别和子类别以及每个页面的产品都这样做似乎是错误的。

任何人都可以帮助如何实现这一目标?

我知道使用 www.urlrewriting.net 并在 asp.net 3.5 中编写网站,但它的技术答案是循环获取名称等我需要帮助。

如果您需要更多信息,我很乐意回答任何问题,并希望有人可以帮助我实现这一目标。

谢谢

【问题讨论】:

    标签: asp.net seo navigation


    【解决方案1】:

    如果您担心返回数据库,只需将整个类别表缓存到内存即可。

    struct Category
    {
      UInt32 CategoryId {get;set;}
      UInt32 ParentId {get;set;}
      string Name {get; set;}
      string Url {get; set;}
    }
    
    SELECT CategoryId, ParentId, Name, Url FROM Categories Order By CategoryId;
    
    MyCategories = new Dictionary<UInt32, Category>();
    
    while (rdr.Read)
    {
      MyCategories.Add((UInt32)rdr["category_id"], new Category(........));
    }
    

    现在获取完整路径只是在内存中循环

    string path = "";
    currentCategory = MyCategories[category_id];
    
    while (currentCategory != nil)
    {
      // StringBuilder here 
      path += "/" + currentCategory.Name;
      currentCategory = MyCategories[Category.ParentId];
    }
    

    【讨论】:

    • 好的,太好了!一旦我有了我的产品 ID(网址的结尾),什么是向后工作的最佳方法。即在我的产品显示页面(产品列表)上,您是否建议仅在当前类别 URL 的末尾连接(+= /nameofproduct.aspx”或执行完整循环以查找产品所属的类别/子类别然后重定向。希望这是有道理的。
    • 你的意思是 SELECT category_id from ProductCategories WHERE product_id = id ??
    • 是的,但例如 productcategories 表中的类别 ID 将是子类别 ID,例如顶级类别 子类别 另一个子类别 - 产品 mydomain.com/products/first-category/second-category/… 的最佳方法是什么。再次感谢您的帮助和耐心。
    • 对不起,我不明白你的问题出在哪里,代码的最后一部分显示了如何在给定根级别的情况下循环到更高级别的类别,也就是说,你用“另一个子类别 id”并通过 parent_id 向上循环到根。
    • 好的,一直在尝试:MyCategories.Add(new Category(........));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多