IQueryable 中的 HtmlEncode 字符串不更改绑定数据

发布于 2024-07-16 13:36:05 字数 471 浏览 6 评论 0原文

我将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

揽月 2024-07-23 13:36:05

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

<asp:YourDataBoundControl>
    <ItemTemplate>
        Query: <span><%# Server.HtmlEncode((string)Eval("Query")) %></span>
    </ItemTemplate>
</asp:YourDataBoundControl>

Your could encode it when you do your binding...

<asp:YourDataBoundControl>
    <ItemTemplate>
        Query: <span><%# Server.HtmlEncode((string)Eval("Query")) %></span>
    </ItemTemplate>
</asp:YourDataBoundControl>
墟烟 2024-07-23 13:36:05

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

Dummy me. I just need to HtmlEncode it within the OnItemDataBound() event.

只等公子 2024-07-23 13:36:05

有数据的两个副本:

from s in dc.SearchResults
orderby s.datetime descending
select new {
  Original = s,
  Encoded = Server.HtmlEncode(s.Query)
};

Have two copies of the data:

from s in dc.SearchResults
orderby s.datetime descending
select new {
  Original = s,
  Encoded = Server.HtmlEncode(s.Query)
};
吃兔兔 2024-07-23 13:36:05

或者您可以使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文