HTMLString序列化为字符串,以json编码

Hig*_*ead 5 .net c# json razor asp.net-mvc-3

简单地说,我希望将我的对象中的属性序列化为字符串而不是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(); }
    }
}
Run Code Online (Sandbox Code Playgroud)

示例Json:

{
  id: 0, 
  name: 'myName'
  wishIWasAString: {}
  fakeHtmlString: 'notAString'
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 1

<script type="type/javascript">
    var fooProperty = @Html.Raw(Json.Encode(Model.Foo));
</script>
Run Code Online (Sandbox Code Playgroud)

或者如果您想将整个模型 JSON 序列化为 javascript 变量:

<script type="type/javascript">
    var model = @Html.Raw(Json.Encode(Model));
    alert(model.Foo.Bar);
</script>
Run Code Online (Sandbox Code Playgroud)