SORU
11 AĞUSTOS 2010, ÇARŞAMBA


Nasıl birkaç MvcHtmlString örnekleri bağlamak için

Bu Bilgi yüzünden MvcHtmlString örnekleri bağlamak için nasıl hakkında bazı şüpheler MSDN bulduk :

MvcHtmlString SınıfHTML ile kodlanmış bir dize temsil eder tekrar kodlanması gerekmektedir

Dizeleri şöyle: kod kullanarak iki kez HTML olarak kodlanmış bir risk

var label = Html.LabelFor(model => model.Email);
var textbox = Html.TextBoxFor(model => model.Email);
var validation = Html.ValidationMessageFor(model => model.Email);

var result = MvcHtmlString.Create(
  label.ToString()   textbox.ToString()   validation.ToString());

(not: bu görünümler kod tekrarını azaltmak) için HtmlHelper bir uzantısı yöntemi gitmek gerekiyordu.

CEVAP
12 AĞUSTOS 2010, PERŞEMBE


Bize operatörü burada geçersiz kılma izin vermiyor! çok kötü C# Nasıl yerine bir uzantısı yöntemi kullanarak?

public static MvcHtmlString Concat(this MvcHtmlString first, params MvcHtmlString[] strings)
{
    return MvcHtmlString.Create(first.ToString()   string.Concat(strings.Select(s => s.ToString())));
}

Bu muhtemelen optimize edilmiş olabilir, ama çalıştırabilirsiniz. Bu birim testi ile dizeleri kodlamak çift olmadığını kanıtlamak için oldukça önemsiz olmalıdır.

Kullanımı örnek:

label.Concat(textbox, validation)   

Ve şimdi benim blog için bir utanmaz fiş: Use TagBuilder or HtmlTags to clean up your HTML

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • mobilenet.cz

    mobilenet.cz

    26 NİSAN 2008
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006