只是我想在我的对象中有一个属性序列化为字符串而不是 HtmlString(它是)。
这里的原因是对象在 json 中被序列化,toString 函数返回的不是对象的字符串内容,而是“[object Object]”。
或者,是否可以将该属性标记为 [Non-Serializable] 并将另一个属性公开为可序列化版本?
提前致谢
编辑: 示例代码:
[Serializable]
public MyObject
{
public int id= 0;
public string name = "myName";
public HtmlString WishIWasAString = new HtmlString("notAString");
public string fakeHtmlString
{
get { return WishIWasAString.ToString(); }
}
}
示例 Json:
{
id: 0,
name: 'myName'
wishIWasAString: {}
fakeHtmlString: 'notAString'
}
最佳答案
<script type="type/javascript">
var fooProperty = @Html.Raw(Json.Encode(Model.Foo));
</script>
或者,如果您想将整个模型以 JSON 序列化为一个 javascript 变量:
<script type="type/javascript">
var model = @Html.Raw(Json.Encode(Model));
alert(model.Foo.Bar);
</script>
关于c# - HTMLString 序列化为字符串,以 json 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640596/