![](/img/trans.png)
[英]The current request for action […] on controller type '…' is ambiguous between the following action methods
[英]The controller's action is ambiguous between the action of the baseclass with same name.
控制器類型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());
}
為什么會這樣? 怎么解決? 謝謝!
您正在創建一個名為index的第二個方法,MVC不知道如何處理。 請參閱此處,了解有關virtual new
的另一種不重寫方法的討論。
相反,您的聯系控制器會考慮以下內容:
public override ActionResult Index() {
return base.Index();
}
感謝您的回答。
因為stackoverflow無法識別我的Gooogle OpenID,所以我創建了一個新帳戶並再次回來:)
我不能使用“覆蓋”因為我正在使用T4MVC 。
所以我修復它:
基本控制器(將“public”替換為“protected”):
protected 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;
}
看起來,現在一切正常。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.