我想传递一个序列化的 json 对象并在自定义 Html Helper 的结果中返回它。像这样的东西
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 对象保存在生成的标记中的某处。
更新:我什至尝试这样做:
sJson.replace("\"",""")
没有帮助。浏览器自动将"
s 转换为"
. 我不知道如何保留标记