簡體   English   中英

System.InvalidOperationException 保存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM