簡體   English   中英

HTMLString序列化為字符串,以json編碼

[英]HTMLString Serialized as string, encoded in json

簡單地說,我希望將我的對象中的屬性序列化為字符串而不是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>

我找到了你問題的解決方案。
使用這個類:

using System.Runtime.Serialization;

[DataContract]
public MyObject 
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string Name { get; set; }

    public HtmlString MyHtmlContent { get; set; }

    [DataMember(Name = "MyHtmlContent")]
    private string serializedMyHtmlContent
    {
        get { return this.MyHtmlContent == null ? null : MyHtmlContent .ToString(); }
    }
}

您將獲得此JSON:

{
    Id: 1234,
    Name: "Chris",
    MyHtmlContent: "<p>Hello word</p>"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM