Asp.net mvc 3 在编辑器模板中,如何将javascript放在标题部分?

Asp.net mvc 3 在编辑器模板中,如何将javascript放在标题部分?,asp.net-mvc-3,mvc-editor-templates,Asp.net Mvc 3,Mvc Editor Templates,我有一个编辑器模板,比如说,日期: @model DateTime @section AdditionalJavaScript2 { /* some js code */ } @Html.TextBox("", Model.ToString("d.M.yyyy"), new { @class = "date" }) 现在,我想在HEAD部分中添加一些js代码,但这不起作用 当然,在我的layout.cshtml中有一个关于此部分的示例: <head> ... @R

我有一个编辑器模板,比如说,日期:

@model DateTime
@section AdditionalJavaScript2
{
   /* some js code */
}

@Html.TextBox("", Model.ToString("d.M.yyyy"), new { @class = "date" }) 
现在,我想在HEAD部分中添加一些js代码,但这不起作用

当然,在我的layout.cshtml中有一个关于此部分的示例:

<head>
  ...
  @RenderSection("AdditionalJavaScript2", required: false)
</head>

...
@RenderSection(“AdditionalJavaScript2”,必需:false)
它可以从普通视图工作,但不能从局部视图(编辑器模板)工作

为什么?

还有,有解决办法吗

谢谢


Igor

局部视图不使用模板,它返回“原始”html以包含在页面中(通过Javascript)。它只能访问它自己返回的流

可以这样想:您通常从Javascript/AJAX调用部分视图以获得一些新的html。您获得返回,并替换一些DIV标记。系统(FireFox、Chrome等)如何知道需要替换HEAD标签中的某些内容的额外数据部分

有一些变通办法:

  • 不要把剧本放在头上
  • 在html和脚本之间添加一个参数开关。您需要进行客户端调用,一个用于获取html,另一个用于脚本。在页面上的两个位置包括对局部视图的调用
  • 使用一些预定义的标记(如
    )分离脚本和html,让调用代码分割结果,并将其放置在正确的位置

好的,我想我必须在html中混合js。我正在尝试制作一个自动完成编辑器模板,因此它不是从客户端(ajax)调用的,而是作为页面生成过程的一部分。不知道如何“后处理”整个页面并将分隔符标记的内容移动到标题:(