シリアル化された json オブジェクトを渡し、それをカスタム Html ヘルパーの結果内に返したいと考えています。このようなもの
public static HtmlString SomeHelper(this HTMLHelper htmlHelper)
{
var MyObject = new Foo();
var oSerializer = new JavaScriptSerializer();
var str = string.Format(@"<a href""#""
onclick=""var myObject = $.parseJSON(0);
alert('my object name property '+ myObject.Name); ""> Click me</a>",
oSerializer.Serialize(MyObject));
return new HtmlString(str);
}
そのことは理論的にはうまくいくはずですが、そうではありません。シリアル化された文字列をマークアップに入れると、二重引用符と単一引用符のためにすべてが乱雑になります。シリアル化後に HtmlString を適用しようとしましたが、HTmlString.ToHtmlString() も使用しようとしました。何も機能しません。
実際、私はおそらくそれをすべきではありません。クリック イベントの呼び出しは控えめに使用する必要があります。知っている。次に、結果のマークアップのどこかに json オブジェクトを保存する必要があります。
Upd:私もそれをやろうとしました:
sJson.replace("\"",""")
役に立たない。ブラウザは自動的に"
s を に変換し"
ます。マークアップを保存する方法がわかりません