【发布时间】:2017-02-18 15:10:19
【问题描述】:
所以,我得到了一个 DropdownListfor,在我看来是这样的:
@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。
感谢您的帮助!
【问题讨论】:
-
检查这个问题:stackoverflow.com/questions/23799091/…。当然,您可以从控制器或视图端设置 DDL 默认值。
-
永远不要在
HtmlHelper方法中设置值属性。它只是@Html.TextBoxFor(m => m.NameOfProduct)。而对于下拉列表,您只需在将模型传递给视图之前在 GET 方法中设置ProductCategory的值(例如model.ProductCategory = 3; return View(model); -
感谢两位提供的信息。如果我理解正确@StephenMuecke,我也会在 get 方法中为我的文本框设置所有值吗?
-
@RawMVC,是的,然后您的表单控件将绑定到您的模型
-
好的,我会这样做,我会在我尝试时在这里快速反馈! :)
标签: c# html asp.net asp.net-mvc html.dropdownlistfor