Sto usando il MVC Attributo Routing (MVC 5.1.2) e sono in esecuzione in errore:MVC AttributeRoute sembra essere ignorando RoutePrefix e causando l'azione corrispondenti a mutiple Controller errore
Multiple controller types were found that match the URL. This can happen if attribute routes on multiple controllers match the requested URL.
The request has found the following matching controller types: FFInfo.WebUI.Areas.Admin.Controllers.HomeController FFInfo.WebUI.Areas.Admin.Controllers.SectionController
Questo accade solo quando ho vai a /Admin/Sections/
e non sono sicuro del perché, poiché esiste una sola route che può corrispondere a quell'URL, qualcuno può aiutarmi a capire cosa c'è che non va? Si noti che questo problema è esclusivo di 5.1.2, MVC 5.0 funziona correttamente.
controller Base:
[RouteArea("Admin")]
public class BaseController : Controller
{
}
controller casa:
[RoutePrefix("")]
[Route("{action}")]
public class HomeController : BaseController
{
public ActionResult Index()
{
}
public ActionResult Updates()
{
}
[ChildActionOnly]
public PartialViewResult GetUpdatesGrid()
{
}
public ActionResult GetUpdates(JqGridRequest Request)
{
}
}
Sezione Controller:
[RoutePrefix("Sections")]
[Route("{action}")]
public class SectionController : BaseController
{
[Route]
public ActionResult Sections()
{
}
[ChildActionOnly]
public PartialViewResult GetSectionsGrid()
{
}
public ActionResult GetSections(JqGridRequest Request)
{
}
public ActionResult AddSection()
{
}
[HttpPost, ValidateAntiForgeryToken]
public ActionResult AddSection(AddEditSectionVM model, HttpPostedFileBase LogoFile)
{
}
public ActionResult EditSection(Int16? ID)
{
}
[HttpPost, ValidateAntiForgeryToken]
public ActionResult EditSection(AddEditSectionVM model, HttpPostedFileBase Logo)
{
}
public ActionResult Releases()
{
}
[ChildActionOnly]
public PartialViewResult GetReleasesGrid()
{
}
public ActionResult GetReleases(JqGridRequest Request)
{
}
public ActionResult AddRelease()
{
}
[HttpPost, ValidateAntiForgeryToken]
public ActionResult AddRelease(AddEditReleaseVM model)
{
}
}
La mia comprensione del RouteArea
RoutePrefix
, e Route
attributi mi dice che /Admin/Index
chiamerà il Index
ActionResult
del controller principale e l'URL Admin/Sections
devono chiamare Index
ActionResult
del controller sezioni. Tutte le altre rotte funzionano perfettamente bene in ogni controller e quando si va su /Admin/Index
funziona perfettamente. Ho ricevuto questo errore solo quando vado a /Admin/Sections
. Che c'è?
C'è stato un cambio di interruzione da 5.0 a 5.1 Ho aperto un bug ticket e ho avuto la risposta che "funzionava come progettato". – Matthew
Sicuramente NON "funziona come progettato" –