Вопрос

Недавно я начал использовать <%= чаще в моем веб-контролях. Как правило, я установлю строковые свойства в коде позади, а затем выпивать их на форму.

Это плохая идея?

например.

Код позади:

Характеристики:

public string TheTitle { get; set; }
public string TheBody { get; set; }
public ContentItem TheContent { get; set; }
public string ContentId { 
  get 
    { return "content" + (TheContent != null) ? TheContent.Id.ToSTring() : "0"; }
}

Page_load:

TheTitle = TheContentItem.Title;
TheBody = TheContentItem.Body;

На странице:

<div id='<%= ContentID %>'>    

  <h2 class='title'><%= TheTitle ?? "No Title" %></h2>
  <p><%= TheBody %></p>

</div>
Это было полезно?

Решение

Это только проблема, когда данные не подтверждены.

Используя .NET 4 <%: TheBody %> Синтаксис является эффективным способом кодирования потенциально ненадежных данных. В более ранних версиях рамки вы можете использовать <%= HttpUtility.HtmlEncode(TheBody) %> к тому же эффекту.

Другие советы

Это плохо, если данные поступают от пользовательского ввода, поскольку ваш сайт будет уязвим к XSS.

Нет, это не проблема *, потому что она будет столена для вашего контроля. Вам не нужно беспокоиться о чем-либо противоречившихся в вашем случае, но если вы пишете серверные элементы управления с идентификаторами, которые вы можете столкнуться с проблемами.

Как ваше его использование, OK (* Предполагая, что вы очистили данные, прежде чем назначить его вашу переменную). Просто имейте в виду, что есть времена, когда это может быть проблемой с дублированием IDS, элементов управления, сценариев и т. Д.

Редактировать: Прежде чем назначить его вашу валюту, вы можете использовать HttpUtility.HtmlEncode или если вы используете ASP.NET 4, вы можете использовать <%: Синтаксис в зависимости от того, что вы выводят. Это подпадает под те же правила, что и делает его ASPX, все в порядке, но вам просто нужно быть осторожным. Это также, насколько используется ASP.NET MVC. Просмотры могут быть лишены <%= а также <%: Очевидно, что с использованием любого типа кодирования на любой HTML сам не будет полезен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top