ASP.NET/Linq-如何在Linq查询中转义HTML字符
本文关键字:查询 转义 HTML 字符 Linq NET Linq- ASP | 更新日期: 2023-09-27 18:29:43
我有这个Linq查询:
from depot in Depots
where depot.DepotTypeId == id
select new
{
DepotId = depot.DepotId,
GpsLatitude = depot.GpsLatitude,
GpsLongitude = depot.GpsLongitude,
locationName = depot.DepotName
}
这很好,但locationName可以包含像"answers"这样的字符。这很糟糕,因为我需要HTML5数据属性中的变量。额外的字符会破坏我的HTML语法。所以我尝试了这个:
locationName = HttpUtility.HtmlEncode(depot.DepotName)
但这会返回错误:
LINQ to Entities无法识别方法"System.String"HtmlEncode(System.String)'方法,而此方法不能是翻译成商店表达式。
我做错了什么?
这里的主要问题是HtmlEncode
方法无法转换为SQL,您需要做的是在选择之前评估LINQ查询(即从数据库中提取数据):
Depots
.Where(d => d.DepotTypeId == id)
.AsEnumerable()
.Select(d => new {
DepotId = d.DepotId,
GpsLatitude = d.GpsLatitude,
GpsLongitude = d.GpsLongitude,
LocationName = HttpUtility.HtmlEncode(d.DepotName)
});