ASP.NET MVC 操作下拉列表适用于创建但不适用于编辑

问题描述

尝试我的第一个 ASP.NET MVC 项目并不断收到以下错误。任何帮助,将不胜感激。 Create 操作工作正常,但在尝试加载 Edit 视图时出错。

我的控制器中有以下代码用于我的 CreateEdit 操作方法

    public ActionResult AccountingCreateDocument()
    {
        AccountingDocumentModel AccDoc = new AccountingDocumentModel();
        AccDoc.vendorsL = Populatevendors();
    
        return View(AccDoc);
    }

    public ActionResult AccountingEditDocument(int id)
    {
        AccountingDocumentHandle sdb = new AccountingDocumentHandle();
        sdb.vendorsL = Populatevendors();

        var vendorSelectedItem = sdb.vendorsL.Find(p => p.Value == sdb.vendorID.ToString());

        if (vendorSelectedItem != null) 
        {
            vendorSelectedItem.Selected = true; 
            sdb.vendorName = vendorSelectedItem.Text; 
            sdb.vendorID = Convert.ToInt32(vendorSelectedItem.Value); 
        }

        return View(sdb.GetAccountingDocument().Find(smodel => smodel.AccountingDocumentID == id));
    }

    private static List<SelectListItem> Populatevendors()
    {
        List<SelectListItem> items = new List<SelectListItem>();
        string cs = @"URI=file:C:\\Users\\DBFile\\source\\repos\\SolutionHD\\SolutionHD\\DB\\dbnameHD_DB.db;";

        var con = new sqliteConnection(cs);
        con.open();

        string stm = "SELECT vendorID,vendorName FROM vendors WHERE State = 'Indiana'";

        var cmd = new sqliteCommand(stm,con);

        using (sqliteDataReader idr = cmd.ExecuteReader())
        {
                while (idr.Read())
                {
                    items.Add(new SelectListItem
                    {
                        Value = Convert.ToString(idr["vendorID"]),Text = Convert.ToString(idr["vendorName"]),});
                }
            }

        con.Close();
        return items;
    }

vendorID (int) 是 AccountingDocument 表和模型类中的一列。

这是我对创建的看法:

    <div class="form-group">
        @Html.LabelFor(model => model.vendorName,htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownListFor(model => model.vendorID,Model.vendorsL,"Please select vendor",new { @class = "form-control" })
          </div>
    </div>

这是我的编辑观点:

    <div class="form-group">
        @Html.LabelFor(model => model.vendorName,(IEnumerable<SelectListItem>)Model.vendorsL,new { @class = "form-control" })
        </div>
    </div>

我在编辑时不断收到此错误

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)