Эта строка вызывает у меня некоторые проблемы в приложении MVC, которое я разрабатываю
<%= Html.DropDownListFor(model => model.TypeID, new SelectList((IEnumerable)ViewData["TaskingTypes"], "TypeID", "TypeName"))%>
Вызывает ошибку в заголовке, когда два других обязательных поля в форме не заполнены. Когда поля заполнены, форма отправляется и записывается в БД, никаких проблем У кого-нибудь есть идеи, почему проверка не берется и не передается в представление?
TaskingTypes - это сущность, которая имеет отношение 1 ко многим с сущностью Tasking. Первоначальный ключ в «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; }
}
Большое спасибо за поиск