J'ai une solution C# contenant deux projets : Client (parent) et RestAPI (enfant). À partir du projet client, je charge un serveur ASP.NET. Actuellement, mon RestAPI charge avec succès les contrôleurs depuis le projet client en utilisant services.AddControllersWithViews().AddApplicationPart(assembly);
. Actuellement, seuls les contrôleurs peuvent être chargés, mais je veux aussi utiliser des vues.
Pour résumer, ce que j'essaie de faire est d'utiliser des vues qui sont situées dans mon projet Client par le projet RestAPI.
Ce que j'ai essayé de faire :
-
services.AddControllersWithViews().AddApplicationPart(assembly);
=> Il ne charge que les contrôleurs -
services.AddMvc().AddApplicationPart(assembly);
=> Mêmes résultats - Renvoie un chemin statique vers le fichier de vue (c'est-à-dire :
return View("C:\Simon\...");
)
Structure du projet :
Dans le contrôleur DevicesController.cs
J'ai la fonction suivante :
[Route("show")]
[HttpGet]
public ViewResult Show()
{
return View("Home");
}
Je veux renvoyer la vue dans le dossier Views situé sous le projet Client. Cependant, il ne renvoie que celle située sous RestAPI. Si je supprime celle qui se trouve dans RestAPI, l'application se bloque avec les journaux d'erreurs suivants :
System.InvalidOperationException : La vue 'Home' n'a pas été trouvée. Les emplacements suivants ont été recherchés : /Vues/Périphériques/Accueil.cshtml /Vues/Partagées/Accueil.cshtml