Je suis nouveau dans le développement de MVC, alors s'il vous plaît, supportez-moi. Est-il vraiment nécessaire de nommer ma vue partielle comme _Action.cshtml
(avec le trait de soulignement _
) pour respecter la convention de dénomination?
Voici mon problème, j'ai un contrôleur (StudentController) et une action (List) qui a un fichier de vue partielle nommé "List.cshtml", et
@{ Html.RenderAction("List", "Student"); }
pour l'afficher dans mon HomeController - Vue d'index comme vue partielle qui fonctionne. Mais si je nomme ma vue partielle en _List.cshtml
, bien sûr, cela ne fonctionnera pas. Visual Studio n'a même pas trouvé la vue pour mon action Student - List car il pense qu'il cherche toujours le même nom exact que mon action (List.cshtml)
. Que devrais-je faire?
Je suis tellement habitué à ASP.NET ascx avec un code de couplage ascx.cs. :(
Il n'est pas nécessaire d'utiliser un trait de soulignement, mais il s'agit d'une convention courante pour les fichiers qui ne sont pas censés être traités directement.
Pour résoudre ce problème, vous avez la possibilité de renvoyer une vue ou une vue partielle avec le nom de la vue en tant que paramètre.
return View("_List");
ou
return PartialView("_List");
ou à l'intérieur d'une autre vue
@{ Html.RenderPartial("_List"); }
Si la vue partielle dépend de ActionMethod et que le rendu est toujours effectué par la méthode Action, vous devez utiliser le même nom de vue partielle, identique à la méthode d'action comme celle-ci.
public PartialViewResult List()
{
DoSomthing();
//PartialView() return a "List "Parial View
return PartialView();
}
mais si votre vue partielle ne dépend pas de la méthode d'action et appelle directement par vue comme ceci
@Html.RenderPartial("_List");