如何在c#中将HtmlText转换为普通字符串

本文关键字:字符串 转换 HtmlText 中将 | 更新日期: 2023-09-27 17:58:35

我有以下模型:

namespace power.Storage.Models
{
    public class Answer
    { 
        public HtmlText[] Explanation { get; set; }
        public string[] ImageFile { get; set; }
    }
    public class HtmlText { 
        [AllowHtml]
        public string TextWithHtml { get; set; } 
    }
}

现在我想能够从答案中获取数据,并执行以下操作:

String[] _code_explanation = null;
_code_explanation = 
 (string) JSON.FromJSONString<Answer>(_code.AnswersJSON).Explanation;

但它不起作用。它说"无法将HtmlText转换为字符串

我有什么东西不见了吗?我想我所需要做的就是在JSON之前添加(字符串)。。。

以下是JSON 的代码

    public static T FromJSONString<T>(this string obj)
    {
        using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(obj)))
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            T ret = (T)ser.ReadObject(stream);
            return ret;
        }
    }

下面的一半工作:

HtmlText[] _code_explanation = null;
    _code_explanation = 
     (string) JSON.FromJSONString<Answer>(_code.AnswersJSON).Explanation;

它给了我一个HtmlText数组,但我不知道如何将其转换为一个简单的字符串数组。

如何在c#中将HtmlText转换为普通字符串

HTMLText没有显式或隐式的String的强制转换运算符。

您可以使用HttpUtility.HtmlDecode方法解码HtmlText。它不能直接转换为字符串。

我想你想做这样的事情,假设解释是HtmlText 类型

String[] _code_explanation = null;
_code_explanation = 
   JSON.FromJSONString<Answer (_code.AnswersJSON).Explanation.TextWithHtml;