SORU
5 Mart 2010, Cuma


maxlength ASP.NET MVC eğlence devri açmıştır stringlength bir metin kutusu özellik

MVC2 bir uygulama üzerinde çalışıyorum ve metin girdi maxlength öznitelikleri ayarlamak ister.

Zaten Modeli strınglength öznitelik verileri ek açıklamaları kullanarak nesne ve girilen dizeler doğru uzunluğunu doğrulamak tanımlanmış.

Model zaten bu bilgiye sahip olduğunda maksimum uzunluğu el özniteliği ayarlayarak görüşlerimi aynı ayarı tekrar yapmak istemiyorum. Bunu yapmak için herhangi bir yolu var mı?

Kod parçacıkları aşağıda:

Model:

[Required, StringLength(50)]
public string Address1 { get; set; }

Manzarası:

<%= Html.LabelFor(model => model.Address1) %>
<%= Html.TextBoxFor(model => model.Address1, new { @class = "text long" })%>
<%= Html.ValidationMessageFor(model => model.Address1) %>

Yapmaktan kaçınmak istediğim şey:

<%= Html.TextBoxFor(model => model.Address1, new { @class = "text long", maxlength="50" })%>

Bu çıktıyı almak istiyorum:

<input type="text" name="Address1" maxlength="50" class="text long"/>

Bunu yapmak için herhangi bir yolu var mı?

CEVAP
5 Mart 2010, Cuma


Yansıma başvurmadan bunu başarmak için herhangi bir şekilde farkında değilim. Yardımcı bir yöntem yazabilirsiniz:

public static MvcHtmlString CustomTextBoxFor<TModel, TProperty>(
    this HtmlHelper<TModel> htmlHelper, 
    Expression<Func<TModel, TProperty>> expression, 
    object htmlAttributes
)
{
    var member = expression.Body as MemberExpression;
    var stringLength = member.Member
        .GetCustomAttributes(typeof(StringLengthAttribute), false)
        .FirstOrDefault() as StringLengthAttribute;

    var attributes = (IDictionary<string, object>)new RouteValueDictionary(htmlAttributes);
    if (stringLength != null)
    {
        attributes.Add("maxlength", stringLength.MaximumLength);
    }
    return htmlHelper.TextBoxFor(expression, attributes);
}

bu gibi kullanabilirsiniz:

<%= Html.CustomTextBoxFor(model => model.Address1, new { @class = "text long" })%>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013