ASP.NET MVC 3 - 占位符

JQu*_*ile 2 asp.net-mvc-3

我正在研究ASP.NET MVC 3应用程序.我主要来自ASP.NET WebForms背景.我正在开发一个具有复杂布局方案的应用程序.因此,我希望将所有布局代码都放在_Layout.cshtml中.我的挑战是,每个页面都有自定义的javascript逻辑.我发现如果这个JavaScript包含在我的页面中间,它就不起作用.所以我想做的就是把它移到其他地方.但为了做到这一点,我需要类似于ASP.NET WebForms PlaceHolder控件的东西.理想情况下,我希望能够做到这样的事情:

<body>
  <div id="myLayout" style="background-color:Gray; height:100%;">
    <div id="myContent" style="background-color:Silver;">
      @RenderBody()    
    </div>
    <div id="myFooter" style="background-color:Silver;">
      Footer
    </div>
  </div>

  @RenderScript()
</body>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我这样做?或者我是否必须单独编写每个页面?

谢谢!

bbe*_*ard 8

这就是我做的,在你的每个视图中创建一个这样的部分,把你想要的任何html放在其中

任何观点:

@section Scripts
{
    <script src="@Url.Content("~/Scripts/myscript.js")" type="text/javascript"></script>
    <!-- Styles, more scripts, etc -->
}
Run Code Online (Sandbox Code Playgroud)

然后回到_Layout.cshtml中,您可以在任何地方呈现该部分,第二个参数表示该页面是否需要"脚本"部分.

_Layout.cshtml :(你想要的任何地方)

<head>
    @RenderSection("Scripts", false)
</head>
Run Code Online (Sandbox Code Playgroud)