Sitefinity MVC中SolrNet获取Long text(text area)字段值问题
Sitefinity MVC中Solr获取Long Text (Text Area)字段值的问题解决
字段处理差异说明
Sitefinity对不同文本字段的Solr映射逻辑不一样:
- 短文本字段:默认映射为Solr的字符串/文本类型,
getStringField()可以直接读取原始值。 - Long Text (Editor):带HTML编辑器的富文本字段,Sitefinity会标记其为HTML类型,Solr存储时保留完整HTML结构,所以
getHtmlField()能正确识别并返回内容。 - Long Text (Text Area):纯文本多行输入框,Sitefinity默认不将其标记为富文本字段,Solr中存储的是纯文本值,不属于
getHtmlField()对应的字段类型范畴,因此调用这个方法拿不到值。
正确获取方式
直接用getStringField()读取该字段的纯文本值:
@item.getStringField("Summary")
如果需要在前端保留换行格式,可以把换行符转成<br>标签后渲染:
@Html.Raw(item.getStringField("Summary").Replace("\n", "<br>"))
额外检查点
- 登录Solr后台查看字段映射:确认
Summary字段的类型是text_general这类纯文本类型,不是富文本专用字段。 - 检查Sitefinity字段配置:确保
Summary的“可搜索”和“可检索”选项已勾选,否则Solr不会索引或返回该字段数据。
内容的提问来源于stack exchange,提问作者hnnnng
相关产品推荐
相关产品推荐

