【问题标题】:Model binding problem with DropDownListForDropDownListFor 的模型绑定问题
【发布时间】:2011-08-20 15:03:39
【问题描述】:
@Html.DropDownListFor(model => model.Activity.ActivityType, new 
     SelectList(Model.ActivityTypes, "ActivityTypeId", "Name") )

我认为上面的下拉列表。在我的表单上提交时,所选的 ActivityType 无法绑定到我的模型中的 Model.Activity.ActivityType 属性。

出现无法将字符串转换为 ActivityType 的错误。

我认为这是因为它只是试图绑定 ActivityType 的 Name 属性而不是整个对象。

我需要做些什么来确保在提交表单时选择的 ActivityType 正确绑定到模型?

谢谢

【问题讨论】:

  • ActivityType的类型是什么?
  • @Eranga 这是一种复杂的类型——我现在意识到这就是它不起作用的原因。干杯。

标签: asp.net-mvc-3 razor html.dropdownlistfor


【解决方案1】:

在 lambda 中用作DropDownListFor 助手的第一个参数的属性必须是标量值(字符串、整数、...)。您不应使用复杂类型,因为 HTML 表单中的 <select> 元素仅提交单个值。所以你可能需要绑定到相应的 id 属性:

@Html.DropDownListFor(
    model => model.Activity.ActivityType.ActivityTypeId, 
    new SelectList(Model.ActivityTypes, "ActivityTypeId", "Name")
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    相关资源
    最近更新 更多