none
@html.dropdownlistfor 为什么总是报错 RRS feed

  • 问题

  •    @Html.DropDownListFor(model=>model.product_name , ViewData["CircuitProductType"] as SelectList, "--请选择--", new { @class = "form-control" })
    

    一运行总是报错,报错信息如下

    System.InvalidOperationException
    HResult=0x80131509
    Message=不存在具有键“product_name”的“IEnumerable”类型的 ViewData 项。
    Source=System.Web.Mvc
    StackTrace:
    在 System.Web.Mvc.Html.SelectExtensions.GetSelectData(HtmlHelper htmlHelper, String name)
    在 System.Web.Mvc.Html.SelectExtensions.SelectInternal(HtmlHelper htmlHelper, ModelMetadata metadata, String optionLabel, String name, IEnumerable`1 selectList, Boolean allowMultiple, IDictionary`2 htmlAttributes)
    在 System.Web.Mvc.Html.SelectExtensions.DropDownListFor[TModel,TProperty](HtmlHelper`1 htmlHelper, Expression`1 expression, IEnumerable`1 selectList, String optionLabel, IDictionary`2 htmlAttributes)
    在 System.Web.Mvc.Html.SelectExtensions.DropDownListFor[TModel,TProperty](HtmlHelper`1 htmlHelper, Expression`1 expression, IEnumerable`1 selectList, String optionLabel, Object htmlAttributes)
    在 ASP._Page_Views_Circuit_infoEnter_cshtml.Execute() 在 D:\dev_vs2019\CircuitManagement\CircuitManagement\Views\Circuit\infoEnter.cshtml 中: 第 60 行
    在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
    在 System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
    在 System.Web.WebPages.StartPage.RunPage()
    在 System.Web.WebPages.StartPage.ExecutePageHierarchy()
    在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
    在 System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
    在 System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
    在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
    在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
    在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
    在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)

    后台程序

     public ActionResult InfoEnter()
            {
                string sql = "SELECT type as Text ,type as Value FROM circuit_type order by type";
                DataTable table1 = SQLHelper.GetCircuitData(sql).Tables[0];
    
                 var CircuitProductTypeList = SQLHelper.DataTableToList<SelectListItem>(table1);
                 ViewData["CircuitProductType"] = CircuitProductTypeList;
                return View();
            }

    请高手指点一下

    2020年12月14日 8:35

全部回复