如何通过另一个下拉列表中的操作填充下拉列表?

时间:2013-02-22 15:51:38

标签: c# asp.net-mvc razor asp.net-mvc-4

我正在使用MVC 4.0,我需要一个包含3个下拉列表和一个表格的页面。

从DDL1(例如用户)中选择项目时,将填充DDL2(例如,帐户)。 从DDL2(帐户)中选择项目时,将填充DDL3(例如卡片)。 当从DDL3中选择一个项目时,该表必须显示一个对象列表,例如交易(与金额等)。

所以我创建了一个TransactionManagementController并创建了一个Index Action来加载用户并最初显示它们。

 public ActionResult Index()
        {
            var vm = new VmTransactionManagement
                {
                    Users = db.Users.ToList()
                };

            return View(vm);
        }

<th>User:</th>
        <td>@Html.DropDownListFor(m => m.SelectedUser,
                                  Model.UsersSelectList,
                                  "-- Select One --")</td>

另外,我为这个控制器创建了一个视图模型:VmTransactionManagement,它包含了所需的其他一些对象。

那么,现在我将如何编码以便在选择DDL1(传递userId)时,然后填充DDL2?

我应该创建一个新的操作/视图并通过Ajax调用它吗?

如果我创建一个新的Action,那么我将不得不创建一个新的View来更改之前选择的值。

1 个答案:

答案 0 :(得分:0)

当我需要级联下拉列表时,我将使用jQuery $.load并渲染PartialView。使用技术的示例是https://stackoverflow.com/a/1721623/1015010