Asp.net mvc 5 在SiteFinity11中-可以通过MVC小部件在基本模板中生成自定义html/脚本到html节或标记
我想我应该首先提到,我对Sitefinity和MVC都比较陌生,我感谢您的帮助。到目前为止,我在这个问题上的研究结果是空的 因此,我们希望通过一个小部件将自定义html和/或脚本放置在网页的body标记的末尾,我们可以将其放到特定的页面或页面模板上。我愿意接受任何关于实现这一点的建议,但到目前为止,我一直在尝试通过放置在自定义基础模板上的引用来实现这一点 在.cshtml中,我注意到默认情况下Sitefinity有@Html.Section(“head”)、@Html.Section(“top”)和@Html.Section(“bottom”)。有没有一种方法可以从MVC小部件或视图直接写入这个“底部”部分 我尝试了上述方法和其他方法,例如在基础布局中使用RenderSection:Asp.net mvc 5 在SiteFinity11中-可以通过MVC小部件在基本模板中生成自定义html/脚本到html节或标记,asp.net-mvc-5,sitefinity,Asp.net Mvc 5,Sitefinity,我想我应该首先提到,我对Sitefinity和MVC都比较陌生,我感谢您的帮助。到目前为止,我在这个问题上的研究结果是空的 因此,我们希望通过一个小部件将自定义html和/或脚本放置在网页的body标记的末尾,我们可以将其放到特定的页面或页面模板上。我愿意接受任何关于实现这一点的建议,但到目前为止,我一直在尝试通过放置在自定义基础模板上的引用来实现这一点 在.cshtml中,我注意到默认情况下Sitefinity有@Html.Section(“head”)、@Html.Section(“top”
@if (IsSectionDefined("MyOtherJavascript"))
{
@RenderSection("MyOtherJavascript");
}
然后在小部件视图中:
@section MyOtherJavascript
{
<script type="text/javascript">
// some code
</script>
}
@section-MyOtherJavascript
{
//一些代码
}
但当我这样做时,会出现如下错误:
无法直接请求[layoutname].cshtml”,因为它调用“IsSectionDefined”方法
感谢您提供的任何见解。实现这一点的一种方法是在主布局cshtml文件中的结束正文标记正上方创建一个新的“占位符区域” 例如:
<body>
@Html.SfPlaceHolder("Header")
@Html.SfPlaceHolder("Main")
@Html.SfPlaceHolder("Footer")
@Html.SfPlaceHolder("BeforeClosingBody")
</body>
@Html.SfPlaceHolder(“标题”)
@Html.SfPlaceHolder(“Main”)
@Html.SfPlaceHolder(“页脚”)
@SfPlaceHolder(“BeforeClosingBody”)
这将在Sitefinity页面编辑模式下创建一个可拖动区域,因此您可以将任何想要的小部件拖动到此区域,包括内容块小部件(用于任意html)或Javascript小部件(用于任意js代码)
有关sfPlaceHolder的更多详细信息,请参见。非常感谢Veselin!您的方法满足了我的需要,是一个比我尝试的更简单的解决方案。