1

我将 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();
4

4 回答 4

2

当您进行绑定时,您可以对其进行编码...

<asp:YourDataBoundControl>
    <ItemTemplate>
        Query: <span><%# Server.HtmlEncode((string)Eval("Query")) %></span>
    </ItemTemplate>
</asp:YourDataBoundControl>
于 2009-04-04T07:15:49.443 回答
0

骗我。我只需要在 OnItemDataBound() 事件中对其进行 HtmlEncode。

于 2009-04-04T07:08:58.570 回答
0

有两个数据副本:

from s in dc.SearchResults
orderby s.datetime descending
select new {
  Original = s,
  Encoded = Server.HtmlEncode(s.Query)
};
于 2009-04-04T07:09:43.187 回答
0

或者你可以使用 HttpUtility.HtmlEncode('string');

两者都是有效的,但上面的一个在应用程序中的任何地方都可用,比加载 HttpContext.Current.Server.HtmlEncode 更容易。

于 2009-04-04T07:38:23.523 回答