Asp.net mvc 剃须刀里的占位符?
我可以将ContentPlaceHolder与Webforms视图引擎结合使用,将内容放在母版页的不同位置 我用剃须刀怎么做Asp.net mvc 剃须刀里的占位符?,asp.net-mvc,razor,Asp.net Mvc,Razor,我可以将ContentPlaceHolder与Webforms视图引擎结合使用,将内容放在母版页的不同位置 我用剃须刀怎么做 <div id="content"> <asp:ContentPlaceHolder ID="MainContent" runat="server"> </asp:ContentPlaceHolder> </div> <div id="footer">
<div id="content">
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</div>
<div id="footer">
<asp:ContentPlaceHolder ID="Footer" runat="server">
</asp:ContentPlaceHolder>
</div>
在Google中找到正确的搜索关键字之前,我又一次设法询问了 在布局中
@RenderSection("footer", required: false)
视图示例
<h2>About</h2>
<p>
Some stuff about this page.
</p>
<p>
The current date and time: @DateTime.Now
</p>
@section footer {
Copyright (c) 2010, Robert Sundström.
}
关于
关于这个页面的一些东西。
当前日期和时间:@DateTime.Now
@节尾{
版权所有(c)2010,Robert Sundström。
}
无法留下评论抱歉,但您可以删除“必需的:”
顺便说一句,在MVC3RC中,
RenderSection
的参数从optional
更改为required
(当然,其含义颠倒了)。所以,它看起来是这样的:@RenderSection(“footer”,required:false)(我编辑了答案以反映这一点。)正是我想要的。感谢您的提问和回答:)为什么我们将rendersection设置为false?@Duk,将其设置为false
,表示不应呈现任何内容。因此,如果用户不执行(如上面的示例所示)@section footer{…}
,则不显示任何内容。在没有最后一段代码的情况下尝试一下,您将不会看到任何渲染。但是如果你添加了它(如上面的例子),那么版权就被呈现了;首先,当我看到这一点时,我感到困惑,因为传递参数名称使其“立即可理解”是不正常的。那为什么人们不喜欢匈牙利符号呢?它使您的所有代码都可以理解:)@Kyle:因为“true”比“footer”
说的要少true
可以代表任何东西,但是我们大多数人都理解“footer”
在一个名为RenderSection
的方法中是什么,@jgauffin的回答就足够了,但下面也是Scott Gu写的一篇文章,详细解释了各部分的工作原理
@RenderSection("footer", false)