Строка HtmlEncode в IQueryable без изменения связанных данных - PullRequest
1 голос
/ 04 апреля 2009

Я связываю элемент управления 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 ]

2 голосов
/ 04 апреля 2009

Вы можете закодировать его, когда вы делаете привязку ...

<asp:YourDataBoundControl>
    <ItemTemplate>
        Query: <span><%# Server.HtmlEncode((string)Eval("Query")) %></span>
    </ItemTemplate>
</asp:YourDataBoundControl>
0 голосов
/ 04 апреля 2009

Или вы можете использовать HttpUtility.HtmlEncode ('string');

Оба действительны, но приведенный выше доступен в любом месте приложения, проще, чем загрузка HttpContext.Current.Server.HtmlEncode.

0 голосов
/ 04 апреля 2009

Имеют две копии данных:

from s in dc.SearchResults
orderby s.datetime descending
select new {
  Original = s,
  Encoded = Server.HtmlEncode(s.Query)
};
0 голосов
/ 04 апреля 2009

Пустышка. Мне просто нужно HtmlEncode в событии OnItemDataBound ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...