ASP.NET MVC3 Partial View naming convention

je suis nouveau dans le développement MVC alors s'il vous plaît patientez avec moi. Est-il vraiment nécessaire de nommer ma vue partielle comme _Action.cshtml (avec _ underscore) pour se conformer à la convention de nommage?

Voici mon problème j'ai un controller (StudentController) et une action (List) qui a un fichier de vue partielle nommé "List".cshtml", et ont

@{ Html.RenderAction("List", "Student"); } 

pour afficher ceci dans ma vue HomeController - Index en vue partielle qui fonctionne. Mais si je nomme ma vue partielle à _List.cshtml bien sûr, il ne fonctionnera pas. Visual Studio n'a même pas pu trouver la vue pour mon action Student - List parce qu'il pense qu'il cherche toujours le même nom exact que mon action (List.cshtml). Que dois-je faire?

je suis tellement habitué à ASP.NET ascx avec un couple ascx.code cs. : (

40
demandé sur Chris Barlow 2011-04-22 03:43:35

2 réponses

il n'est pas nécessaire d'utiliser un underscore, mais c'est une convention courante pour les fichiers qui ne sont pas destinés à être servis directement.

pour résoudre ceci, vous avez l'option de retourner une vue ou une vue partielle avec le nom de la vue comme paramètre.

return View("_List");

ou

return PartialView("_List");

ou à l'intérieur d'un autre point de vue

@{ Html.RenderPartial("_List"); }
56
répondu ataddeini 2011-04-22 00:00:49

si la vue partielle dépend de la méthode D'action et rend toujours par la méthode D'Action, vous devriez avoir le même nom de vue partielle que la méthode d'action comme ceci

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 la vue comme ceci

@Html.RenderPartial("_List"); 
0
répondu Kashif Faraz 2018-01-29 05:06:23