鉴于URI / admin / article / index,为什么这个url映射不起作用?
"/admin/$controller/$action?/$id?"{
view = "/admin/index" // no dice, ignored
//action = "foo" // uncommented, this is picked up
}
我希望所有管理员控制器默认使用管理视图(而不必在每个控制器的每个操作中呈现视图)。 “/ account / $ controller / ...”和应该使用公共视图的任何其他站点模块也是如此。
也许还有另一种方法可以达到这个目的,但是假设UrlMappings就是这样做的地方......
答案 0 :(得分:1)
看起来你正在尝试做一些与你写的完全不同的事情。
您已经在基本网址映射中映射了action
,并且系统会根据controller
自动选择视图,因此您需要define different mappings查看那些不是foo
的视图有一个控制器,以及默认操作为index
的项目的另一个映射。但是,控制器上的默认操作是{{1}},因此通常无需在未指定控制器的情况下提供默认操作。
我认为你总体上误解了MVC框架是如何工作的。控制器不应呈现任何内容,并且视图应特定于控制器/操作。如果多个控制器呈现完全相同的视图,我愿意打赌控制器呈现HTML或视图过于复杂。
您应该查看Layouts with SiteMesh,它允许您创建默认模板结构,然后通过视图更改特定内容。