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

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Ty Moss

    Ty Moss

    20 Kasım 2007