亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有鍵“XXX”的ViewData項的類型為“System.Int32”

具有鍵“XXX”的ViewData項的類型為“System.Int32”

慕后森 2019-05-23 10:11:29
具有鍵“XXX”的ViewData項的類型為“System.Int32”我有以下視圖模型public class ProjectVM{     ....     [Display(Name = "Category")]     [Required(ErrorMessage = "Please select a category")]     public int CategoryID { get; set; }     public IEnumerable<SelectListItem> CategoryList { get; set; }     ....}和以下控制器方法創建一個新項目并分配一個 Categorypublic ActionResult Create(){     ProjectVM model = new ProjectVM     {         CategoryList = new SelectList(db.Categories, "ID", "Name")     }     return View(model);}public ActionResult Create(ProjectVM model){     if (!ModelState.IsValid)     {         return View(model);     }     // Save and redirect}并在視圖中@model ProjectVM....@using (Html.BeginForm()){     ....     @Html.LabelFor(m => m.CategoryID)     @Html.DropDownListFor(m => m.CategoryID, Model.CategoryList, "-Please select-")     @Html.ValidationMessageFor(m => m.CategoryID)     ....     <input type="submit" value="Create" />}視圖顯示正確但在提交表單時,我收到以下錯誤消息InvalidOperationException:具有鍵“CategoryID”的ViewData項的類型為“System.Int32”,但必須是“IEnumerable <SelectListItem>”類型。使用該@Html.DropDownList()方法會發生相同的錯誤,如果我使用ViewBag或傳遞SelectList ViewData。
查看完整描述

4 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

根據斯蒂芬的回答,這可能很有用:

@Html.DropDownListFor(m => m.CategoryID, Model.CategoryList ?? new List<SelectListItem>(), "-Please select-")

或在ProjectVM中:

public class ProjectVM{
    public ProjectVM()
    {
        CategoryList = new List<SelectListItem>();
    }
    ...}


查看完整回答
反對 回復 2019-05-23
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

最可能導致某種錯誤重定向到您的頁面,而您又沒有再次初始化模型的下拉列表。

確保在模型的構造函數中或每次將所述模型發送到頁面之前初始化下拉列表。

否則,您需要通過視圖包或隱藏值助手維護下拉列表的狀態。


查看完整回答
反對 回復 2019-05-23
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

我有同樣的問題,當我試圖發布表單時,我得到了一個無效的ModelState。對我來說,這是因為將CategoryId設置為int,當我將其更改為字符串時,ModelState有效且Create方法按預期工作。


查看完整回答
反對 回復 2019-05-23
  • 4 回答
  • 0 關注
  • 1360 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號