2011-08-20 46 views
0
@Html.DropDownListFor(model => model.Activity.ActivityType, new 
    SelectList(Model.ActivityTypes, "ActivityTypeId", "Name")) 

我在上圖中看到了上面的下拉列表。在我的表單上提交時,所選的ActivityType無法綁定到我的模型中的Model.Activity.ActivityType屬性。DropDownListFor的模型綁定問題

有一個錯誤說無法將字符串轉換爲ActivityType。

我認爲這是因爲它只是試圖綁定ActivityType的Name屬性而不是整個對象。

我需要做什麼才能確保在提交表單時所選的ActivityType正確綁定到模型上?

謝謝

+0

「ActivityType」的類型是什麼? – Eranga

+0

@Eranga這是一個複雜的類型 - 我現在意識到它是爲什麼它不工作。乾杯。 – Michael

回答

6

在lambda作爲第一個參數DropDownListFor助手必須是一個標值的屬性(字符串,整數,...)。您不應使用複雜類型,因爲HTML表單中的<select>元素僅提交一個值。因此,您可能需要綁定到相應的id屬性:

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