MVC - 可以选择" SelectList"返回所选对象?

时间:2015-09-25 16:23:05

标签: c# asp.net-mvc html.dropdownlistfor

获得了一个对象列表,likaso(伪代码):

class PersonViewModel{name, age, etc}
class MyObjectViewModel
{
    //actually comes from WebService, but that doesnt matter here
    List<PersonViewModel> AllPeople= {person1,person2, etc}
    PersonViewModel SelectedPerson;
}

所以我想允许用户从下拉列表中选择一个人:

@model MyModels.MyObjectViewModel

@Html.DropDownListFor(MyObjectViewModel=> MyObjectViewModel.SelectedPerson , new SelectList(Model.AllPeople))

正确填充了视图和下拉列表。

当我点击提交时,Controller总是获取myObjectViewModel.SelectedPerson == Null。 为什么它不返回任何东西?如何返回所选对象?

1 个答案:

答案 0 :(得分:2)

$sExample = 'Example !'; $sAnotherOneHere = 'Again ?'; $sAndTheLast = 'ENOUGH !'; 无法创建Html.DropDownListFor作为选定人员。虽然它可以返回PersonViewModel所选人员,但您必须从服务/会话/数据库等中获取所有其他字段。假​​设Id具有PersonViewModel和{{1这是你应该做的:

Id

在您发布的动作中,您将获得MyObjectViewModel.SelectedPersonId,其中包含所选人员的ID。您可以使用它来获取Name