在我的Addcar
视图中,我有表格允许我将数据插入我的数据库(表Car
)。
在表Car
中我colonne (Idcat)
它的外键与Categorie
表相关。
所以在我的添加表单中,我应该有一个dropDownlist,允许用户选择他想要添加的汽车的类别。
这是我观点的一部分:
<div class="editor-label">
<p>
<%: Html.LabelFor(model => model.Idcat) %>
</p>
</div>
<div class="editor-field">
<p>
<!-- in this dropDownList i want to show the all Name Of Marque in my forgien table and user when he select value wil be set at id of selected marque -->
<%: Html.DropDownListFor(model => model.Idcat, ViewBag.cat as SelectList)%>
<%: Html.ValidationMessageFor(model => model.Idcat) %>
</p>
</div>
这是我的控制器动作:
public ActionResult addcar()
{
ViewBag.cat = new SelectList(entity.categorie, "Idcat", "Nom");
return View();
}
这项工作很好,直到我开始创建他在此行显示此错误There is no ViewData item of type 'IEnumerable <SelectListItem>' with key 'Idcat'.
<%: Html.DropDownListFor(model => model.Idcat, ViewBag.cat as SelectList)%>
答案 0 :(得分:0)
答案 1 :(得分:0)
模型绑定实际上只绑定各个元素。所以这是精美的绑定Idmarque。没有帮助显示可能值的下拉列表。对我来说,这似乎是框架中缺少的东西,因为它会让你停止使用EditorForModel。您必须决定如何处理获取下拉列表。您是否可以使用Html Helper查询数据库并绘制选项列表?或者您希望控制器调用模型方法来获取选项列表,并将其作为视图模型的一部分传递到视图中?可能希望避免传递datareader,因为如果这样做可能会出现打开连接问题。