Не уверен, что выпадающее я создала отправку выбранного значения. Мне не хватает аргумента из помощника DropDownList?Словарь параметров содержит нулевую запись для параметра «SolutionArchitectID» типа, отличного от нуля, «System.Int32»
CreateDropDowns метод
List<SelectListItem> EmployeeList = new List<SelectListItem>();
foreach (Employee e in db.Employees)
{
EmployeeList.Add(new SelectListItem { Text = e.FirstName + " " + e.LastName, Value = e.SolutionArchitectID.ToString() });
}
ViewBag.EmployeeList = EmployeeList;
UpdateDetails метод
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UpdateDetails(int SolutionArchitectID) {
Asset currAppRecord = db.Assets.Where(a => a.ApplicationID == ApplicationID).Single();
...
currAppRecord.SolutionArchitectID = SolutionArchitectID;
...
}
Посмотреть
@using (Html.BeginForm("UpdateDetails", "Atlas"))
{
...
<div class="form-group">
<label class="control-label col-md-2" for="Employees">Solution Architect</label>
<div class="col-md-10">
@Html.DropDownList("EmployeeList")
</div>
</div>
...
}
SolutionArc hitectID - это поле для обновления в таблице db на submit.
Я думаю, проблема связана с вашим параметром метода действий, который принимает пустую/пустую строку. Попробуйте отправить некоторое целочисленное значение для этого параметра в url и повторите попытку. Или вы можете указать тип параметра как 'string' и проанализировать его внутри контроллера для обработки. –
Если я удаляю аргумент SolutionArchitectID из метода обновления в контроллере, обновление формы проходит через штраф, вот почему я думаю, что я должен использовать неправильную перегрузку для помощника DropDownList. – SoloSheff
Думаю, вам нужно разместить некоторый пример кода, показывающий поток, который вы делаете из представления в контроллер (например: с сигнатурой метода действия и правильной разметкой, которую вы используете и т. Д.). –