سؤال

أنا ربط عنصر تحكم 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top