我希望制作一个 MVC 站点,它可以使用路由完全控制 url 结构。
routes.MapRoute(
"BlogView",//路由名称
"view/{blogurl}",//带参数的 URL
new { controller = "view", action = "view", productLink = ""}//参数默认值
);
路线.MapRoute(
"ProductGrid",//路线名称
"category/{category}",//带参数的 URL
new { controller = "category", action = "Index", category = ""}//参数默认值
);
我目前有以下网址;
www.myblog.com/view/first-post
www.myblog.com/view/another-post
www.myblog.com/category/code
www.myblog.com/category/example
前两个 url 与详细 View 相关,后两个 url 与类别 View 相关。
我有一个具有以下结构的数据库;我确保 url (chrUrl) 是唯一键。 网址 ( idurl (int), 网址, Action , chr Controller )
我的计划是可以查找重写路由查找表,以便以下 url 重定向到站点中的正确 View 和页面;
www.myblog.com/first-post
www.myblog.com/another-post
www.myblog.com/code
www.myblog.com/example
这可能吗?除了性能,这有什么问题吗?我应该如何解决这个问题?
最佳答案
由于您没有任何东西可以区分 View 和类别项目,我会考虑使用默认 Controller 来检查 id 是否在类别表中并将控制权传递给 View 或类别 Controller 。
routes.MapRoute(
"Root", // Route name
"/{id}", // URL with parameters
new { controller = "default", action = "redirect"} // Parameter defaults
);
但如果您可以接受在类别 URL 中包含“/category/”,那将是后端更优雅的解决方案。
关于c# - mvc.net 动态 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150295/