J'ai un site Web développé dans MVC 5, j'utilise attributs de route pour le routage. J'ai mis lecontrôleur par défaut et leaction par défaut pour chaque contrôleur en utilisant le code suivantContrôleur par défaut et action par défaut dans MVC5
public class CompanyController : MainController
{
[Route("~/", Name = "default")]
[Route("Company/Index")]
public ActionResult Index(string filter = null)
{
//My code here
}
[Route("Company/Edit")]
public ActionResult Edit(int id)
{
//My code here
}
}
J'ai un autre contrôleur avec une action par défaut:
[RoutePrefix("Analyst")]
[Route("{action=Index}")]
public class AnalystController : MainController
{
[Route("Analyst/Index")]
public ActionResult Index(string filter = null)
{
//My code here
}
[Route("Analyst/Edit")]
public ActionResult Edit(int id)
{
//My code here
}
}
Le contrôleur par défaut a fonctionné parfaitement, mais lorsque je navigue vers le contrôleur de l'analyste sans spécifier le nom de l'action, je reçois le suivant ROR:
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:
SurveyWebsite.Controllers.AnalystController
SurveyWebsite.Controllers.CompanyController
Comment puis-je corriger naviguer à http://localhost:61534/analyst et atteindre l'action par défaut (index)? L'action devrait également rester accessible par http://localhost:61534/analyst/Index Merci pour votre aide.
Merci pour votre réponse, mais l'action ne sera pas accessible par http: // localhost: 61534/analyste/Index –
@BilelChaouadi Maladroit que partie dans votre question :(J'ai mis à jour ma réponse pour travailler avec les deux urls – Shyju
Merci, ça fonctionne :) –