我想傳遞一個序列化的json對象,並在自定義的Html Helper結果中返回它。像這樣的東西如何將json字符串傳遞給HtmlHelper的結果?
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轉換爲"
。我不知道如何保留標記
這就是我用的:JSON.parse('@ Html.Raw(Json.Encode(Model))') – Megacan 2011-11-28 18:27:29