不確定我創建的下拉列表是否發送選定的值。我是否缺少DropDownList助手的參數?參數字典包含非空值類型'System.Int32'的參數'SolutionArchitectID'的空條目
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是提交時在數據庫表中更新的字段。
我想,問題是你的action方法參數是接收空/空字符串。嘗試在url中爲該參數發送一些整數值,然後重試。或者你可以將參數類型設置爲'string'並在控制器內解析它來處理。 –
如果我從控制器的update方法中刪除了SolutionArchitectID參數,那麼表單更新會很好,這就是我認爲我必須使用DropDownList助手的錯誤重載的原因。 – SoloSheff
我認爲你需要發佈一些示例代碼來顯示你正在從視圖到控制器的流程(例如:使用動作方法簽名和正確的標記你使用等) –