C# 控制器';的操作在具有相同名称的基类的操作之间不明确。

C# 控制器';的操作在具有相同名称的基类的操作之间不明确。,c#,asp.net-mvc,C#,Asp.net Mvc,控制器类型ContactController上的当前操作“索引”请求在以下操作方法之间不明确: System.Web.Mvc.ActionResult Index() on type RX.Web.Controllers.ContactController System.Web.Mvc.ActionResult Index() on type RX.Web.Controllers.CustomControllerBase2[[RX.Core.Model.Contact, RXTechJob.Co

控制器类型
ContactController
上的当前操作“索引”请求在以下操作方法之间不明确:

System.Web.Mvc.ActionResult Index() on type RX.Web.Controllers.ContactController
System.Web.Mvc.ActionResult Index() on type RX.Web.Controllers.CustomControllerBase2[[RX.Core.Model.Contact, RXTechJob.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 
联系人控制器:

        public virtual new ActionResult Index()
    {
        return base.Index();
    }
        public virtual ActionResult Index()
    {

        return View("Index", SelectAll());

    }
        public virtual new ActionResult Index()
    {
        return base.Index();
    }
基本控制器:

        public virtual new ActionResult Index()
    {
        return base.Index();
    }
        public virtual ActionResult Index()
    {

        return View("Index", SelectAll());

    }
        public virtual new ActionResult Index()
    {
        return base.Index();
    }

为什么会这样?如何修复它?谢谢

您正在创建另一个名为index的方法,MVC不知道如何处理该方法。有关创建附加的非重写方法的讨论,请参阅

<> P>而不是你的联系控制器考虑以下事情:

public override ActionResult Index() {
        return base.Index();
}

谢谢你的回答

因为stackoverflow无法识别我的Gooogle OpenID,所以我创建了一个新帐户并再次返回:)

我不能使用“覆盖”,因为我正在使用

所以我就这样解决它:

基本控制器(将“公共”替换为“受保护”):

联系人控制器:

        public virtual new ActionResult Index()
    {
        return base.Index();
    }
        public virtual ActionResult Index()
    {

        return View("Index", SelectAll());

    }
        public virtual new ActionResult Index()
    {
        return base.Index();
    }
在T4MVC自动生成的代码中,它可以被覆盖:

        public override System.Web.Mvc.ActionResult Index() {
        var callInfo = new T4MVC_ActionResult(Area, Name, Actions.Index);
        return callInfo;
    }
看起来,现在一切都很好