Привязка ASP.NET MVC3 к коллекции не создает проверку на стороне клиента

У меня есть следующая модель:

public class FacturaIntrareModel
    {
        private List<DetaliiFacturaIntrareModel> _produse = new List<DetaliiFacturaIntrareModel>();
        public List<DetaliiFacturaIntrareModel> Produse
        {
            get { return _produse; }
            set { _produse = value; }
        }
    }

public class DetaliiFacturaIntrareModel
    {


        [Range(0, double.MaxValue, ErrorMessage = "The Discount must have positive values!")]        
        public decimal Discount { get; set;}


    }

Код для привязки такой:

@model  FacturaIntrareModel
@using DevExpress.Data
@Html.DevExpress().GridView(settings =>
{


    settings.Columns.Add(col =>
    {
        col.FieldName = produsId;

        col.Caption = "Discount";
        col.ColumnType = MVCxGridViewColumnType.Default;
        col.SetDataItemTemplateContent
            (c =>
            {
                string idProdus = DataBinder.Eval(c.DataItem, produsId).ToString();
                var index = Model.Produse.FindIndex(y => y.IdProdus.ToString() == idProdus);
                ViewContext.Writer.Write
                    (
                        @Html.TextBoxWithCustomHtmlAttributesFor(x => x.Produse[index].Discount, new { @onchange = "setDiscountProdus(" + idProdus + ", $(this).val())", @style = textBoxWitxh }).ToHtmlString()
                        +
                        @Html.ValidationImageWithTooltipFor(x => x.Produse[index].Discount).ToHtmlString()

                    );
            }
            );
        col.Width = texBoxColWidth;
        col.CellStyle.HorizontalAlign = textBoxColAlign;

    });


}
            ).Bind(Model.Produse).GetHtml()

HTML-код, сгенерированный для СКИДКИ:

<input data-type="decimal" id="Produse_1__Discount" name="Produse[1].Discount" onchange="setDiscountProdus(2, $(this).val())" style="width:40px;" type="text" value="2">
<div class="field-validation-valid" data-valmsg-for="Produse[1].Discount" data-valmsg-replace="true"></div>

Аннотации html для аннотации RANGE не созданы.


person Dragos Durlut    schedule 31.07.2012    source источник
comment
взгляните на этот stackoverflow.com/questions/5239995/ это не проблема с devex, потому что у меня была такая же проблема с простой таблицей html и TextBoxFor   -  person Yaroslav Bigus    schedule 31.07.2012
comment
только что попробовал с @HtmlTextBoxFor, и он отрендерил это <input type="text" value="" name="Discount" id="Discount" data-val-required="The Discount field is required." data-val-range-min="0" data-val-range-max="1.79769313486232E+308" data-val-range="The Discount must have positive values!" data-val-number="The field Discount must be a number." data-val="true" class="input-validation-error">   -  person Yasser Shaikh    schedule 31.07.2012
comment
@Yasser, я поставил HtmlTextBoxFor и никаких изменений в HTML. TextBoxWithCustomHtmlAttributesFor использует HtmlTextBoxFor в своей основе.   -  person Dragos Durlut    schedule 31.07.2012
comment
@YaroslavBigus, интересно, но я нахожусь в настройках DevExpress GridView, что немного сложнее реализовать   -  person Dragos Durlut    schedule 31.07.2012