我正在从经典的asp挖掘ASP.NET MVC,并完成了一些教程。我现在理解这个概念,但我有一个关于控制器的主要问题。如果从sql数据库获取url(带params),你如何能够控制url结构?
示例:/custom-url-1
或/custom-url-23423411
(相应地返回params以提供代码)
我猜它会与ActionResult Index()
有关,但不知道在那之后会去哪里。任何想法在哪里看或甚至可能? MVC甚至允许这个吗?
答案 0 :(得分:-1)
您可以采用的一种方法是让所有内容都转到一个控制器中的一个操作并解析视图中的内容。 仅当您有一种类型的视图时,这才有用。
第二种方法是为每种类型的内容提供route constraint或custom route constraint 说:画廊,博客,页面 并且在每个约束中检查给定的URL是否属于这种类型(通过db调用),如果约束返回true,它将把请求指向给定的控制器和动作。
第三种方法是让custom route handler进行检查和路由(请注意,这可能是最难的任务,但如果你有复杂的系统,那么效果最好,如果你很简单,尝试使用方法1或2 < / p>
P.S。如果你想要你的网址被&#34; - &#34;而不是&#34; /&#34;你可以做到这一点
routes.MapRoute(
"Default", // Route name
"{controller}-{action}-{id}",// URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);