Я использую проверку модели в MVC для проверки моих форм.ASP MVC Validation dropdownbox
Я делаю это так:
[MetadataType(typeof(CarModel))]
public partial class Car {...}
public class CarModel
{
[Required(ErrorMessage = "Select the brand please")]
[Display(Name = "Brand* :")]
public object brand_id { get; set; }
...
}
На моем взгляде, у меня есть этот код для выпадающего DropDownBoxого:
@Html.DropDownListFor(m => m.brand_id, new SelectList(ViewBag.brands, "id", "name"), new {@class = "selectBoxes" })
И Viewbag.brands заполняется так:
List<Brand> brands = Brand.GetAllBrands();
ViewBag.brands = brands;
(Бренды имеют поля «id» (int) «name» (строка)), класс/таблица Car использует «brand_id» в качестве ссылки.
Когда я хочу отправить пустую форму, обычно Formvalidation должен работать, но я получаю сообщение об ошибке на @ Html.DropDownListFor:
ArgumentNullException was unhandled by user code
Value cannot be null.
В чем проблема? Создание выпадающего списка? Или не работает правильная работа? Брендовые имена загружаются правильно в раскрывающемся списке, и нет значения «0», например (- Выбрать -), первый бренд отображается в раскрывающемся списке ... Но когда я отправляю пустую форму, она застревает выпадающий список ...
EDIT: Может быть, проблема в том, что Car использует «brand_id», а Brand использует «id»? Если да, то как решить это без изменения этих имен полей?
EDIT2: Бренд просто частичный класс торговых марок (Linq), с функцией:
public static List<Brand> GetAllBrands()
{
db = new CarsDataClassesDataContext();
return db.Brands.OrderBy(b => b.name).ToList<Brand>();
}
Пожалуйста, внесите определение класса 'Brand'. –
Когда выпадающее меню было создано, ViewBag.brands имеет значение NULL. Вы уверены, что ваш код инициализации (ViewBag.brands = бренды) был выполнен? Используйте контрольную точку, чтобы быть уверенным. Можете ли вы разместить свой контроллер? – Ronald
ViewBag.brands заполнен, потому что выпадающий список показан правильно с фирменными именами в нем, но когда я отправляю форму, я получаю ошибку ... Или я вас не понимаю? – francisMi