1

かみそりで簡単な連結を試みています。モデル RAZOR にこれを追加すると、あらゆる種類のスクイークラインが表示されます。

<input type="checkbox" id="ck1-@track.TrackID" 
 onclick="$('#ck2-@(track.TrackID)').prop('checked', $(this).prop('checked'))" />

ただし、完全に出力されます OUTPUT:

<input type="checkbox"
       id="ck1-500004524"
       onclick="$('#ck2-500004524').prop('checked', $(this).prop('checked'))">

出力と同じように正確なhtmlを取得しようとしていますが、すべてのスクイーズはありません。これは他の投稿でカバーされている可能性が高いことは理解していますが、Razor が文字列を連結する方法を把握しようとしていますが、必要になるたびに異なるようです。

前もって感謝します、

4

4 に答える 4

2

前述のように、Razor は変数を html 属性に挿入するのに適していません。その理由の 1 つは、マークアップでイベント ハンドラーをリンクすることが時代遅れになっていることです。

ベストプラクティスは「目立たない方法」です

$(function () {

   $('#').click(function () 
 { $('#ck2-@(track.TrackID)').prop('checked', $(this).prop('checked')) })


})
于 2013-01-31T22:18:00.253 に答える
0

HTML マークアップと Razor 構文を混在させている行で@:は、多くの問題を解決することがわかっている行の前に a を付けています。

また、http://weblogs.asp.net/scottgu/archive/2010/12/16/asp-net-mvc-3-implicit-and-explicit-code-nuggets-with-razor.aspx も確認してください。

このスニペットは良いアドバイスです:

必要に応じて、@ (式) 構文を使用してコード式を明示的にスコープし、意図をより明確にし、静的マークアップからコード ステートメントを明確にすることもできます。

于 2013-01-31T16:23:33.137 に答える
0

"@code" や '@code' などの html/javascript 文字列内に @code があると、ほとんどの場合、波線が表示されます。

于 2013-01-31T04:20:12.477 に答える
0

助けてくれたすべての人に感謝します.答えの1つは、javascriptを要素にハードコーディングするよりも「目立たない方法」が優れていることを示唆していました. これが私が思いついたものです:

<input type="checkbox" class="ckSelectCol" />

$(function () {
    $('.ckSelectCol').each(function () {
        $(this).change(function () {
            dupCheckBox(this);
        });
    });
});

これが行っていることは、クラス ckSelectCol を持つすべてのチェックボックスを見つけて、変更イベント ハンドラーを追加することです。変更イベント ハンドラーは、変更時に呼び出される関数です。

これにはさまざまな方法がありますが、JavaScript をページから分離し、簡単に再利用でき、ページを軽量化するため、この方法を選択しました。

誰か提案があれば、返信してください。

繰り返しになりますが、この投稿で受け取ったすべての意見に感謝します。

-エドワード

于 2013-02-01T23:23:41.217 に答える