[英]System.InvalidOperationException: when saving data to my database
[英]System.InvalidOperationException on saving
當我在添加產品頁面上填寫信息並嘗試保存時,我收到錯誤消息。
public ActionResult Create()
{
List<SelectListItem> values= (from i in db.Categories.ToList()
select new SelectListItem
{
Text = i.Name,
Value = i.Id.ToString()
}
).ToList();
ViewBag.val = values;
return View();
}
看法
<div class="form-group">
@Html.LabelFor(model => model.CategoryId, "CategoryId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(m=> m.CategoryId ,(List<SelectListItem>)ViewBag.val, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CategoryId, "", new { @class = "text-danger" })
</div>
</div>
錯誤
System.InvalidOperationException:“具有鍵“CategoryId”的 ViewData 項的類型為“System.Int32”,但必須為“IEnumerable”類型。
ViewBag 不需要類型轉換,請嘗試更改 View 中的代碼
@Html.DropDownListFor(m=> m.CategoryId ,(List)ViewBag.val, new { @class = "form-control" })
至
@Html.DropDownListFor(m=> m.CategoryId ,@ViewBag.val, new { @class = "form-control" })
或者,您也可以參考這個 SO answer
並使用類似下面的東西 -
@Html.DropDownListFor(m => m.ContribType,
new SelectList(@ViewBag.ContribTypeOptions, "ContribId",
"Value", Model.ContribTypeOptions.First().ContribId),
"Select, please")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.