我正在从经典的asp中钻研ASP.NET MVC,并且已经完成了一些教程。我现在理解了这个概念,但我有一个关于控制器的主要问题。如果您是从sql数据库中获取url (带有参数),那么如何控制url结构呢?
示例:/custom-url-1或/custom-url-23423411 (相应地返回参数以提供代码)
我猜它一定和ActionResult Index()有关,但不确定在那之后该去哪里。你知道该去哪里找吗,或者这有可能吗?MVC甚至允许这样做吗?
发布于 2014-08-11 14:44:33
您可以采用的一种方法是将所有内容都转到一个控制器中的一个操作中,并解析视图中的内容。仅当您有一种类型的视图时,此选项才有用。
第二种方法是为每种类型的内容设置route constraint或custom route constraint,例如:画廊、博客、页面,并在每个约束中检查给定的url是否属于这种类型(通过db调用),如果约束返回true,它会将请求指向给定的控制器和操作。
第三种方法是使用custom route handler进行检查和路由(请注意,这可能是最困难的任务,但如果您有复杂的系统,则效果最好,如果您的系统很简单,请尝试使用方法1或2
附注:如果你想用"-“而不是"/”分隔你的urls,你可以这样做
routes.MapRoute(
"Default", // Route name
"{controller}-{action}-{id}",// URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);https://stackoverflow.com/questions/25236289
复制相似问题