Вот мой продукт и классы ProductItem/модели:MVC 4 Проверка атрибутов не работает для динамически добавляемых полей
public class Product
{
public int ProductId { get; set; }
[Required(ErrorMessage="Enter Name")]
public string Name { get; set; }
public List<ProductItem> productitems { get; set; }
[Required(ErrorMessage="Enter Price")]
public decimal Price { get; set; }
}
public class ProductItem
{
[Required(ErrorMessage="Select Raw Material")]
public int RawMaterial { get; set; }
[Required(ErrorMessage="Enter Quantity")]
public decimal Qty { get; set; }
}
Для ProductItem Я добавляю его поля динамически с помощью JQuery, как вы можете увидеть здесь:
$("#btnAddProductItem").click(function() {
$.getJSON("/rawmaterial/GetRawMaterials", null, function (data) {
var productItem = $("<tr class='productItem' id='productItem-0'><td><select id='rmlist-0' name='productitems[0].RawMaterial'></select><span class='field-validation-valid' data-valmsg-for='productitems[0].RawMaterial' data-valmsg-replace='true'></span></td><td><input type='text' id='rmqty-0' name='productitems[0].Qty'/><span class='field-validation-valid' data-valmsg-for='productitems[0].Qty' data-valmsg-replace='true'></span></td></tr>");
$("#productItem").append(productItem);
$("#rmlist-0").addItems(data);
});
});
Теперь атрибуты проверки, применяемые к имени и цене, работают нормально, но не на добавленных динамиках (т. Е. «RawMaterial» и «Qty»).
Пожалуйста, дайте мне советы, как эта валидация будет работать?
Примечание: Для целей тестирования я просто добавил первый объект списка индексируются с 0.
Возможный дублированный вопрос http://stackoverflow.com/questions/10023503/unobstructive-client-side-validation-for-dynamically-added-input-fields – asymptoticFault
Пожалуйста, предложите любое другое решение, разбор форм не является решением в моей case –
Когда вы говорите, что они не работают, вы имеете в виду сторону клиента или сервера? Можете быть более конкретными? – asymptoticFault