我建立一个基本的博客应用程序刚才,因为我只是用默认路由查看数据,即 -ASP.NET MVC - 在URL中隐藏ID?
routes.MapRoute
(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Blog", action = "Index", id = UrlParameter.Optional }
);
所以,当你去到mysite.com/View/12它显示的具有ID的博客12.我想修改这些URL,使其看起来如下所示:mysite.com/View/2010/06/01/this-is-the-title。
我能有一个URL映射像 -
routes.MapRoute(
"View",
"View/{year}/{month}/{day}/{title}",
new { controller = "Blog", action = "View" }
);
但后来我没有通过ID到控制器动作,所以我不得不在这感觉不对的日期和标题进行搜索。另一方面,如果我传递了ID,它将显示在URL中,而这不是我想要的。有没有办法在控制器动作中只传入ID作为参数后重定向到我想要的URL,或者将ID传递到Map Route但将其隐藏在URL中?
感谢您的帮助!
这可能是最安全的。(日期没有必要,但也许你有这样的组织的原因。) – 2010-06-02 03:50:33
有些人喜欢描述性的网址。 – Aren 2010-06-02 15:41:25
谢谢,我将与此同去!我会考虑将id放入标题中,但如果我要这样做,那么我可能只需将id作为参数传递即可。 – mcfroob 2010-06-02 17:03:19