4

Razorでは、これを行うことができます:

<p @Html.MyCustomDataAttributeFor(person) >@person.Name</p>

このようなものをレンダリングするには:

<p data-custom-person-id="1234567890" >Fred</p>

私は本当に(目立たない)JavaScriptでこれを行う必要があります:

$('p[data-custom-person-id="1234567890"]').css('background-color','red');

私がこれをしたいとき:

$('p[@Html.MyCustomDataAttributeFor(person)]').css('background-color','red');

できれば、HTML ヘルパーによって生成されたデータ属性が変更された場合、クライアント側のコードは要素のスタイルを設定しなくなります。

4

2 に答える 2

4

スクリプトで .cshtml ファイルを指定できますか?

 <script type="text/javascript" src="/myscript.cshtml"></script>

.php と .aspx の両方でこれを行ったと思うので、動作しない理由はわかりません。そのような場合、サーバーに最初にファイルを処理させます。

HttpHandlerそれ以外の場合は、クライアントに送信される前にサーバー側で必要なテキストを解析する顧客を使用できます。

ただし、最も簡単な方法は、Razor からいくつかの Javascript 変数を設定することです。つまり、次のようになります。

<script type="text/javascript">
    var customerId = '@Html.MyCustomDataAttributeFor(person)';
</script>

そして、次のように書きます。

$('p[' + customerId + ']').css('background-color','red');
于 2013-01-22T08:06:23.913 に答える
1

data-custom-person-id="1234567890"サーバーがその値に変換した後、ブラウザーにレンダリングされ@Html.MyCustomDataAttributeFor(person)ます。クライアント側では、これらのテキストをまったく受け取りません。したがって、これらのステートメントをクライアント側のスタイリングに使用することはできません。

于 2013-01-22T07:44:39.873 に答える