سلسلة HTMLEncode داخل iqueryable دون تغيير البيانات المنضم
-
23-08-2019 - |
سؤال
أنا ربط عنصر تحكم 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();
المحلول 2
دمية لي. أحتاج فقط إلى HTMLEncode IT ضمن حدث OnItemDatabound ().
نصائح أخرى
الخاص بك يمكن أن ترميزه عند القيام بملزيمك ...
<asp:YourDataBoundControl>
<ItemTemplate>
Query: <span><%# Server.HtmlEncode((string)Eval("Query")) %></span>
</ItemTemplate>
</asp:YourDataBoundControl>
لدينا نسختين من البيانات:
from s in dc.SearchResults
orderby s.datetime descending
select new {
Original = s,
Encoded = Server.HtmlEncode(s.Query)
};
أو يمكنك استخدام httputility.htmlencode ("سلسلة")؛
كلاهما ساري المفعول ولكن الواحد أعلاه متاح في أي مكان داخل تطبيق أسهل من تحميل httpcontext.current.server.htmlencode.
لا تنتمي إلى StackOverflow