我无法理解如何使用DropDownListFor
。在我的例子中:
@Html.DropDownListFor(model => model.IterationsDropdown, Model.IterationsDropdown)
我有一个IterationsDropdown
是SelectList
的模型。在这两个参数中,我指定了相同的属性,这对我来说似乎是一个重复。
这两个论点的含义是什么?
答案 0 :(得分:1)
第一个参数是模型上的属性,它将保存DropDownList
中的选定值,第二个参数包含生成HTML选择中的选项的实际选择列表。在您的示例中,假设IterationsDropDownList
具有整数Id属性,您需要为所选id创建一个属性:
public int SelectedId { get; set; }
然后你的扩展方法调用就变成了这个:
@Html.DropDownListFor(model => model.SelectedId, Model.IterationsDropdown)
然后,在您的Controller Action方法中,您可以使用名为SelectedId
的整数属性传入任何类型(它可能是您的ViewModel
但它不一定是 - 它可以如果您正在遵循命令查询模式,也可以是Command
,并且当表单发布回服务器时,它将包含DropDownList
中所选选项的ID。
[HttpPost]
public ActionResult YourActionMethod(YourViewModel viewModel)
{
// do something with viewModel.SelectedId
}