【发布时间】:2016-06-26 21:36:27
【问题描述】:
在我的网站中,我有这样的 URL:
https://www.mywebsite.com/View/Index/{MongoDbId}
控制器返回一个带有产品详细信息的视图。
我的产品类 DTO(只是重要的字段)
public class ProductDto
{
public string Id {get; set;}
public string Name {get; set;}
}
此时我有一个名为 View 的控制器和一个处理请求的 Index 方法,但我想要这样的东西:
https://www.mywebsite.com/v/56b8b8801561e80c245a165c/amazing-product-name
实现这一点的最佳方法是什么?
我已经阅读了 ASP.NET Core (official project on GitHub) 中的路由,但我不太清楚该怎么做。
谢谢!!
【问题讨论】:
-
如果您希望您的网址 100% 对 SEO 友好(网址中没有 ID),最好的方法是使用 data-driven routing by implementing
IRouter。 -
但是我有大约 80000 项,还有更多……我可以在没有性能问题的情况下使用它吗?
-
而在这一刻...我没有 URL 字段...
-
我只是说除了接受的答案之外还有其他选择。使用该解决方案您肯定会获得更好的性能,但您的网站在 SERP 中的排名可能不如 URL 中没有 ID 的网站。没有适合所有人的万能解决方案,您需要根据性能还是 SEO 更重要来决定。当然,使用缓存时(如答案所示)性能将取决于您有多少可用内存以及您根据 URL 流行度将路由实例优化到不同缓存中的程度。
标签: c# asp.net-core asp.net-core-mvc