I have following controller code:
public MyController:Controller
{
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult MyPartialViewAction()
{
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView",PartialViewModel);
}
}
and my Index view has the following code :
@HTML.Action("MyPartialViewAction")
When I run the Web app I get HttpException with InnerExceptionMessage as :
InnerException {"The partial view '~/Views/Shared/MyCustomFolder/_MyPartialView' was not found or no view engine supports the searched locations. The following locations were searched:\r\n~~/Views/Shared/MyCustomFolder/_MyPartialView"} System.Exception {System.InvalidOperationException}
What I have tried till now :
Tried moving
_MyPartialView
from~/Views/Shared/MyCustomFolder
to~/Views/Shared/
and~/Views/MyControllerFolder
but still error existsTried changing my Index View code to
@HTML.RenderAction()
but no luck.
Any inputs on where I'm going wrong ?
Thanks
You need to add the .cshtml extension to the view name:
Just in case the selected answer is not working for you:
I changed the build action of the cshtml file to Content and it fixed it.
If the answers are still not working for you and you have put your partial in a nested folder inside of partials, ensure that you provide the full path to the partial with the extension.
@Html.Partial("~/Views/Partials/Components/_AdvancedComponentRenderer.cshtml", Model.Content);
I got this error message because the partial view was added to the project file (.csproj) but was not actually present on disk.
Also double check for spaces after your filename, before the ".cshtml". I had inserted one blank space accidentally after my filename, and this disrupted the automatic behavior of PartialView() for me.