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

  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • kylediablo

    kylediablo

    8 Ocak 2007
  • VitalyzdTv

    VitalyzdTv

    7 AĞUSTOS 2011