ASP MVC Define Section in Partial View

Jeandre Pentz picture Jeandre Pentz · Jul 26, 2013 · Viewed 45.8k times · Source

As the title states, I want to define a section in a partial view.

My code that I've tested with are as follows:

Controller:

public ActionResult Test()
{
    return View();
}

public ActionResult PartialTest()
{
    return PartialView("_PartialTest");
}

Test.cshtml:

@{
    ViewBag.Title = "Test";
}

<h2>Test</h2>

@Html.Action("PartialTest")

_PartialTest.cshtml:

<p>partial Test</p>

@section scripts {
    <script type="text/javascript">
        $(document).ready(function() {
            alert("Test");
         });
     </script>
}

Placing the section scripts in the Test.cshtml works fine so the problem isn't in the layout.

Anyone know how to do this?

Answer

Henk Mollema picture Henk Mollema · Jul 26, 2013

Partial views don't support @section tag. You should add them in the view which references the partial view. See this question for more information: Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine.

It basically comes down to the fact that the main view referencing a partial should be responsible for including Javascript, not the partial view itself.