我已经使用了N2 CMS一段时间了,我刚刚更新为使用MVC 3 RC而且我现在在每一页上都收到了这个错误:
当前的行动请求'索引' 控制器类型'HomeController'是 以下动作之间存在歧义 方法:System.Web.Mvc.ActionResult 索引()类型 Project.Web.Controllers.N2Controller
1[[Project.Web.Models.HomePage, Project.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] System.Web.Mvc.ActionResult Index() on type N2.Web.Mvc.ContentController
1 [[Project.Web.Models.HomePage, Project.Web,版本= 1.0.0.0, Culture = neutral,PublicKeyToken = null]]
只是为了解释我有一个HomeController,它继承自N2Controller< HomePage>,N2Controller< T>继承自N2.Web.Mvc.ContentController< T>。
每个控制器,Home,Account等都没有Index方法,因为ContentController已经有一个。
这一切对MVC 2都很好,但是对于MVC 3 RC,它会抛出这个错误。
任何想法?我在网上找不到任何东西......
干杯, 灰分。
答案 0 :(得分:1)
这听起来像N2Controller有一个Index
方法,应该在ContentController中将Index
方法设置为override。
在控制器上解析操作方法的方式必须在MVC2和3之间进行更改,以考虑继承层次结构,从而导致此问题。