2

私は MVC を使用しており、HtmlHelper 拡張関数 ImageLink を作成しました。この関数は、2 つの TagBuilder オブジェクトを使用して HTML 画像リンク ( など<a><img/></a>) を作成します。

正常に動作しますが、画像ボタンのアクションを最初に確認する必要があるページができました。そこで、"javascript: return confirm('confirm me');" で onclick 属性を追加しました。onclick コードとして。

これは次のようにレンダリングされます: onclick="javascript:return confirm('confirm me');"

これはうまくいかないと思いますが、うまくいきます。しかし、ここで入力すると:

"javascript: return confirm('confirm me\r\nnewline');"

これは次のようにレンダリングされます。

onclick="javascript:return confirm('confirm me newline');"

これは機能しません。

私は、TagBuilder が何もエンコードしないことを望んでいます。しかし、そうなので、これを適切に機能させる方法を探しています。

4

1 に答える 1

2

バックスラッシュ (\) は C# 文字列の特殊文字であるため、最終的な文字列に表示する場合は、他の状況で通常行うようにエスケープする必要があります。

tag.MergeAttribute("onclick", "return confirm('first line\\n\\nsecond line');");
于 2011-10-09T04:13:49.620 に答える