2013-02-22 81 views
0

我正在使用MVC 4.0,我需要一个包含3个下拉列表和一张表格的页面。如何通过另一个下拉列表中的操作填充下拉列表?

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

所以我创建了一个TransactionManagementController并创建了一个索引动作,它加载用户并最初显示它们。

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调用它吗?

如果我创建一个新的动作,那么我将不得不创建一个新的视图来改变以前选择的值。

回答

0

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

+0

部分视图应包含哪些内容?第二个下拉列表根据所选的if从第一个下拉列表填充? – 2013-02-22 16:11:36

+0

是的,就是这样。您可以使用'$ .load'将数据传递给控制器​​(例如用户ID或其他),并根据部分视图中的选择返回适当的选择。 – da7rutrak 2013-02-22 16:17:38

相关问题