1

データベースに山かっこ(より小さい/より大きい)を含む文字列があります。文字列をXElementに挿入してから、クライアントデバイスにシリアル化する必要があります。これで、htmlエンティティが明らかにエンコードされるため、角かっこは<および>として表示されます。最善の方法は、HttpUtility.HtmlDecodeを使用してエンティティをクライアントデバイスにデコードすることです。しかし、とにかくエンコーディングをエスケープして、これらのエンティティをそのまま送信させる方法はあるのでしょうか。

4

2 に答える 2

0

XElement.Value プロパティを設定すると、はい、シリアル化されるときにエンコードされます。ただし、クライアントで逆シリアル化し、XElement.Value プロパティにアクセスすると、エンコードされません。この簡単なサンプルを参照してください。

var htmlData = "<some data>";
XElement element = new XElement("data");
element.Value = htmlData;

var xml = element.ToString();
var data = element.Value;
if (data != htmlData)
    throw new NotImplementedException("this didn't work");

ブレークポイントを設定すると、変数「xml」にエンコードされた html 文字列が含まれていることがわかります。

于 2010-07-23T12:22:00.210 に答える
0

SecurityElement.Escapeメソッドを使用する

于 2010-07-23T12:00:57.340 に答える