c# - HtmlEncode 列表在 MVC 中
问题描述
我有 ac# 类对象,即 List<int,string> 我需要确保列表的字符串变量是 HtmlEncoded,然后再传回 MVC 控制器(稍后我需要解码),但我遇到了困难,因为公司的自定义库的编写方式使我很难操作代码。
在此特定方案中,数据字段嵌入到 SQL 语句中,该语句转换为 List<int,string> 对象。在此 List<int,string> 被传回之前,我需要在字符串变量“GroupName”上使用 WebUtility.HtmlEncode:
public List<DatasetModel> GetMembers(List<int> groupIds)
{
using (var work in unitOfWorkFactory())
{
return work.DataContext.Query.Read<DatasetModel>(
$@SELECT {nameof(TableOne.GroupId)
, {(nameof(TableOne.Name))} as GroupName
FROM {this._tableProvider.GlobalTable<TableOne>()}
WHERE {nameof(TableOne.GroupId)} {groupIds.ToSqlInClause()}"
).ToList();
)
}
}
我尝试创建扩展方法和类似以下的方法,但出现类型转换错误等,这导致我编写基本的 for 循环和 cast() 等不合适的:
List<DatasetModel> returnList = model.Select(x => new DatasetModel{x.GroupId, WebUtility.HtmlEncode(x.Name)}).ToList();
跟进:这是我为实现目标而必须做的事情。我不喜欢它,因为我在被调用的方法中使用了 foreach 循环。我无法始终如一地理解/解决涉及“初始化程序错误”和列表与通用列表的错误:
public List<DatasetModel> GetMembers(List<int> groupIds)
{
using (var work in unitOfWorkFactory())
{
return EncodeList(work.DataContext.Query.Read<DatasetModel>(
$@SELECT {nameof(TableOne.GroupId)
, {(nameof(TableOne.Name))} as GroupName
FROM {this._tableProvider.GlobalTable<TableOne>()}
WHERE {nameof(TableOne.GroupId)} {groupIds.ToSqlInClause()}"
).ToList();
)
}
}
private static List<DatasetModel> EncodeList(List<DatasetModel> list)
{
var returnList = new List<DatasetModel>();
foreach (var l in list)
{
var m = new DatasetModel(attributeId: l.attributeId, attributeName: WebUtility.HtmlEncode(l.attributeName));
returnList.Add(m);
}
return returnList;
}
解决方案
推荐阅读
- xml - 如何扩展主题样式属性?
- python - python3中的CSV到JSON,具有重复值
- javascript - 无法使用 Vue.js 和 Axios 上传文件
- python - Numpy追加到空数组
- javascript - 切换img src时添加transition
- html - 如何获取 HTML 页面上某个部分的文本
- heroku - 从托管在 cedar-14 堆栈上的 heroku 应用程序转发?
- angular - 如何以 Angular 形式获取下拉选项的值
- docker - docker: 'notary' 不是 docker 命令
- python - 请求的资源(FLASK API / ReactJs)上不存在“Access-Control-Allow-Origin”标头