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

  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • The Brister

    The Brister

    10 ŞUBAT 2008