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

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008