Эта линия вызывает у меня некоторые проблемы в приложении MVC я занимаюсь разработкойОшибка в ASP.NET MVC SelectList. Значение не может быть пустым, имя параметра: элементы
<%= Html.DropDownListFor(model => model.TypeID, new SelectList((IEnumerable)ViewData["TaskingTypes"], "TypeID", "TypeName"))%>
Это вызывает ошибку в названии, когда два других необходимых полей в форме не являются заполняется. Когда поля заполняются, форма представляется и записывается в db, без проблем. У кого-нибудь есть идеи, почему валидация не подбирается и не передается в представление?
«TaskingTypes» - это объект, который имеет отношение «1 к многим» с объектом «Tasking». Foriegn ключ в 'Tasking' имеет значение 'TypeID'
Верхние 2 строки трассировки стека являются:
[ArgumentNullException: Value cannot be null.
[Parameter name: items]
System.Web.Mvc.MultiSelectList..ctor(IEnumerable items, String dataValueField, String dataTextField, IEnumerable selectedValues) +262322
System.Web.Mvc.SelectList..ctor(IEnumerable items, String dataValueField, String dataTextField) +31
это контроллер
[AcceptVerbs(HttpVerbs.Get),Authorize]
public ActionResult Create(){
Tasking tasking = new Tasking()
{
Created_On = DateTime.Now
};
ViewData["TaskingTypes"] = tt.GetAllTaskingTypes().ToList();
return View(tasking);
}
[AcceptVerbs(HttpVerbs.Post),Authorize]
public ActionResult Create(Tasking tasking)
{
if(TryUpdateModel(tasking)){
tasking.Created_On = DateTime.Now;
tasking.Created_By = User.Identity.Name;
taskingRepository.Add(tasking);
taskingRepository.Save();
return RedirectToAction("Details", new { id = tasking.TaskingID });
}
return View(tasking);
}
и это проверка класс
public class Tasking_Validation
{
[Required(ErrorMessage = "Please select a tasking type")]
public string TypeID { get; set; }
[Required(ErrorMessage = "Tasking Title is Required")]
[StringLength(255, ErrorMessage="Title cannot be longer than 255 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Location is Required")]
[StringLength(255, ErrorMessage = "Location cannot be longer than 50 characters")]
public string Location { get; set; }
}
Большое спасибо за просмотр
Конечно ..... Спасибо, вы очень помогли, все еще изучая этот материал MVC. – MrBliz