下拉菜单-绑定时,ajax表单在mvc2 asp.net中提交下拉菜单



我的要求很简单,在我的视图中有两个下拉列表。第一个下拉框被默认填充,第二个下拉框必须根据第一个下拉框的值填充。

My view is

<script type='text/javascript'>
$(function() {
    $('#ddlRoles').change(function() {
        $(this).parents('form').submit();
    });
});

< % using (Ajax.BeginForm("UpdateDropdownForm", new AjaxOptions { UpdateTargetId = "txtDropdownValue" }))
{ %>
<%= Html.DropDownList("ddlRoles", (IEnumerable<SelectListItem>)ViewData["RolesData"])%>
<%= Html.DropDownList("ddlUsers", (IEnumerable<SelectListItem>)ViewData["UsersList"])%>

<%} %>

控制器是

public class HomeController : Controller
{       
    public ActionResult Index()
    {
        ViewData["RolesData"] = GetDropdownList();
        List<SelectListItem> usersList = new List<SelectListItem>();
        usersList.Add(new SelectListItem() { Text = "Select" });
        ViewData["UsersList"] = usersList;
        TempData["UsersList"] = usersList;
        return View();
    }
    public IEnumerable<SelectListItem> UpdateDropdownForm(string ddlRoles)
    {
        ViewData["UsersList"] = GetUsersList();
        TempData["UsersList"] = GetUsersList();
        return GetUsersList();            
    }
    public List<SelectListItem> GetDropdownList()
    {
        List<SelectListItem> list = new List<SelectListItem>();
        list.Add(new SelectListItem() { Text = "Admin", Value = "1" });
        list.Add(new SelectListItem() { Text = "Employee", Value = "2" });
        list.Add(new SelectListItem() { Text = "Manager", Value = "3" });
        return list;
    }
    public List<SelectListItem> GetUsersList()
    {
        List<SelectListItem> list = new List<SelectListItem>();
        list.Add(new SelectListItem() { Text = "Administrator", Value = "10" });
        list.Add(new SelectListItem() { Text = "Ramesh", Value = "20" });
        list.Add(new SelectListItem() { Text = "Satish", Value = "30" });
        return list;
    }
}

在这里,我可以发布第一个下拉数据,并在viewdata/tempdata中设置第二个下拉数据,并在视图中将数据绑定到第二个下拉列表。但是这行不通。

现在,当第一个下拉菜单改变时,我只是绑定第二个下拉菜单。但如果我想填充一个下拉框,并在两个文本框中显示数据。在这种情况下我该怎么做?

我该如何解决这个问题?请帮助。

您可能会发现下面的答案对于生成层叠式下拉列表很有用。

最新更新