ASP.NET MVC3 Partial View naming convention

RyanMAd picture RyanMAd · Apr 22, 2011 · Viewed 24.3k times · Source

I'm new to the MVC development so please bear with me. Is it really necessary to name my partial view like _Action.cshtml (with the _ underscore) to comply with the naming convention?

Here's my problem I have a controller (StudentController) and an action (List) that has a partial view file named "List.cshtml", and have

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

to display this inside my HomeController - Index view as partial view which works. But if I name my partial view to _List.cshtml of course it will not work. Visual Studio could not even find the view for my action Student - List because it think it's still looking for the exact same name as my action (List.cshtml). What should I do?

I m so used to ASP.NET ascx with a pairing ascx.cs code. :(

Answer

ataddeini picture ataddeini · Apr 22, 2011

It's not necessary to use an underscore, but it's a common convention for files which aren't meant to be served directly.

To solve this, you do have the option of returning a View or PartialView with the name of the view as a parameter.

return View("_List");

or

return PartialView("_List");

or inside another view

@{ Html.RenderPartial("_List"); }