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;
}
看起来,现在一切都很好