IQueryable 中的 HtmlEncode 字符串不更改绑定数据
我将 ASP.NET 控件绑定到 LINQ 查询的结果。 我想在绑定到控件之前对所包含对象的属性之一进行 HtmlEncode,但我想在不更改数据的情况下执行此操作,因为我稍后会执行 DataContext.SubmitChanges() 。 如何才能做到这一点?
不起作用的代码:
var ds = (from s in dc.SearchResults
orderby s.datetime descending
select s)
.Take(int.Parse(ConfigurationManager.AppSettings["RecentItemQty"]));
foreach (SearchResult sr in ds)
sr.Query = Server.HtmlEncode(sr.Query);
rSearches.DataSource = ds;
rSearches.DataBind();
I'm binding an ASP.NET control to the result of a LINQ query. I'd like to HtmlEncode one of the properties of the contained objects before binding to the control, but I want to do it without altering the data because I do a DataContext.SubmitChanges() later on. How can this be done?
Code that won't work:
var ds = (from s in dc.SearchResults
orderby s.datetime descending
select s)
.Take(int.Parse(ConfigurationManager.AppSettings["RecentItemQty"]));
foreach (SearchResult sr in ds)
sr.Query = Server.HtmlEncode(sr.Query);
rSearches.DataSource = ds;
rSearches.DataBind();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当你进行绑定时你可以对其进行编码......
Your could encode it when you do your binding...
假我。 我只需要在 OnItemDataBound() 事件中对其进行 HtmlEncode 即可。
Dummy me. I just need to HtmlEncode it within the OnItemDataBound() event.
有数据的两个副本:
Have two copies of the data:
或者您可以使用 HttpUtility.HtmlEncode('string');
两者都是有效的,但上面的一个可以在应用程序中的任何地方使用,比加载 HttpContext.Current.Server.HtmlEncode 更容易。
Or you could use HttpUtility.HtmlEncode('string');
Both are valid but the one above is available anywhere within an application easier than loading up HttpContext.Current.Server.HtmlEncode.