2011-06-29 4 views
4

私はのためのエディタテンプレートをHAVA、のは言わせ、日付:エディタテンプレートでは、ヘッドセクションにどのようにjavascriptを挿入できますか?

@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> 

それは平面図からではなく、部分的なビュー(エディター・テンプレート)から動作します。

なぜですか?

そして、回避策はありますか?

おかげで、

イゴール

答えて

2

部分ビューテンプレートを使用していない、それは(Javascriptをすることによって)自分のページに含まれる「生」のHTMLを返します。ストリームにはアクセスできません。

このように考える:通常は、新しいHTMLを得るためにJavascript/AJAXから部分的なビューを呼び出す。あなたはリターンを得て、いくつかのDIVタグを置き換えます。どのようにシステム(FireFox、Chrome、...)は、HEADタグの何かを置き換える必要があるデータの余分な部分があることを知っています。

いくつかの回避策があります

  • HEADでスクリプトを入れないでくださいは、パラメータスイッチは、HTMLやスクリプトをbetweed追加します。クライアント側の呼び出し、htmlの取得、スクリプトの呼び出しが必要です。部分ビューへの呼び出しは、ページの2つの場所に含めます。
  • <!-- SEPERATOR -->のようなあらかじめ定義されたタグを使用してスクリプトとhtmlを区切り、呼び出しコードが結果を分割して正しい位置に置くようにします。
+0

OK、私はhtmlでjsを混ぜなければならないと思う。 私はオートコンプリートエディタテンプレートを作成しようとしているので、クライアント(ajax)から呼び出されるのではなく、ページ生成プロセスの一部として呼び出されます。 ページ全体を「後処理」して区切りタグの付いたコンテンツをHEADに移動する方法がわからない:( – igorludi

関連する問題