所以,我在我的视图中看到了类似的DropdownList:
@Html.DropDownListFor(m => m.ProductCategory, new SelectList(Model.ProductCategories.OrderBy(m => m.PCNumber), "", "Name"), "")
这应该是这样的。在我的下一个视图中,用户应该能够编辑他的订单。所以我想要做的是,如果他打开表单应该显示之前的所有数据,对于文本框,我使用以下代码:
@Html.TextBoxFor(m => m.NameOfProduct, new { @Value = @Model.NameofProduct })
所以现在我的问题是当我将值存储在我的模型(数据库)中时,如何对DropDownListFor执行与我的文本框(从模型中给出默认值)相同的操作?它应该是这样的,如果他之前选择了类别3并且现在想要从之前编辑他的订单,则下拉列表应该立即显示类别3.
感谢您的帮助!
答案 0 :(得分:3)
尝试此代码可能适用于您的情况。
@Html.DropDownListFor(m=> m.PCNumber, new SelectList(m.ProductCategories, "PCNumber", "ProductCategory"), "-- Select Category --", new { @class = "form-control" })
这里您将在下拉列表中获得默认编辑顺序
[HttpGet]
public ActionResult EditOrder(int? id)
{
_obj_order_detail = db.order_detail.Find(id);
if (_obj_order_detail != null)
{
_obj_order_detail.ProductCategories = db.category_detail.ToList(); //get category List
return View(_obj_order_detail);
}
else
{
return view();
}
}
这将返回包含您要修改的订单的视图,ProductCategories
和dropdown bu默认包含您要修改的ProductCategory