我不知道为什么我一直在为此苦苦挣扎,但是有人可以解释为什么这不起作用吗?
/
重定向到控制器的index
操作。home
/gallery/
抛出 404 not found 错误。
/gallery/index
重定向到控制器的index
操作。gallery
从文档中:
定义路由时,可以为参数分配默认值。如果 URL 中不包含该参数的值,则使用默认值。您可以通过将字典对象分配给 Route 类的 Defaults 属性来设置路由的默认值。
我不明白这怎么不符合这条规则:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
对我来说,它是这样写的:
- 如果 a
controller
未定义,请使用Home
. - 如果
action
未定义 an,请使用Index
. - 输入的 URL 包含一个控制器 = ,并且URL 中不包含
gallery
一个操作,因此它应该转到.Index
我是否遗漏了某些东西或这不必要的混乱和愚蠢?
我一直发现 MVC3 路由有问题,但接受了它。然后我开始使用 Rails 和 Node 框架,它们的路由非常简单,所以现在 .NET MVC 只是在它不起作用或让我使用复杂模式时让我烦恼。
以供参考,以防有人问起,当我浏览到/gallery/index
.
public class GalleryController : Controller
{
public ActionResult Index()
{
return View();
}
}