参数字典包含参数';SolutionArchitectID';不可为null的类型';System.I

本文关键字:参数 类型 null System 字典 包含 SolutionArchitectID | 更新日期: 2023-09-27 18:21:44

不确定我创建的下拉列表是否正在发送选定的值。我是否缺少DropDownList助手的参数?

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>
...
}

SolutionArchitectID是提交时数据库表中要更新的字段。

参数字典包含参数';SolutionArchitectID';不可为null的类型';System.I

using中,没有名为SolutionArchitectID的Html控件。要成功提交表单,您需要通过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")
                @Html.Hidden("SolutionArchitectID", <<PutHereSomeValue>>)   
            </div>
        </div>
...
}

我认为以下问题的答案将有助于更多

  • 您将如何获得SolutionArchitectID的价值
  • 它是否会与表格一起寄回