我有一个编辑模板,比方说,日期:
@model DateTime
@section AdditionalJavaScript2
{
/* some js code */
}
@Html.TextBox("", Model.ToString("d.M.yyyy"), new { @class = "date" })
现在,我想将一些js代码放入HEAD部分,但这不起作用。
当然,我在layout.cshtml中有这个部分:
<head>
...
@RenderSection("AdditionalJavaScript2", required: false)
</head>
它适用于普通视图,但不适用于部分视图(编辑器模板)。
为什么?
并且,有解决方法吗?
谢谢,
伊戈尔
答案 0 :(得分:2)
部分视图不使用模板,它返回“raw”html以包含在您的页面中(通过Javascript)。除了返回的流之外,它无权访问任何内容。
可以这样想:你通常从Javascript / AJAX调用部分视图来获取一些新的html。你得到了回报,并替换了一些DIV标签。系统(FireFox,Chrome,...)如何知道,还有一些额外的数据部分需要替换HEAD标记中的内容。
有一些解决方法:
<!-- SEPERATOR -->
之类的预定义标签分隔脚本和html,让调用代码拆分结果,并将其放在正确的位置。