将DDL中的值发布回代码后面

时间:2015-10-02 13:51:26

标签: c# asp.net-mvc-3 dictionary model-view-controller ddl

MVC使用我在网上找到的exmaple我已经填充了一个字典并将其传递给了视图。我可以查看下拉列表并选择不同的值。但我的问题是如何在代码后面调用一个函数,并将选中的新值发回到代码后面?

  //controller
     toolTipsVM.ListOfMaps = GetMapIds();

     public Dictionary<int, string> GetMapIds()
            {
                //List<int, string> mapIds = new List<int, string>();
                Dictionary<int, string> mapIds = new Dictionary<int, string>();
                mapIds.Add(36, "hi");
                mapIds.Add(37, "how");
                mapIds.Add(39, "now");

                return mapIds;
            }

    //VW
     public Dictionary<int, string> ListOfMaps { get; set; }

//View

     @Html.DropDownListFor(m => m.MapId, new SelectList(Model.ListOfMaps, "Key", "Value"),
                                            "--Choose Map--",
                                                new {@class = "form-control"}
                                        )

1 个答案:

答案 0 :(得分:1)

  1. 您需要在Controller中编写函数来传递值。

    [Post]
    Post_MethodName(string Id)
    {
    }
    
  2. 使用以下jQuery Ajax调用将值发布到该函数。

    $.ajax({
         type: "POST",
         url: "Controller/Post_MethodName", // the method we are calling
         contentType: "application/json; charset=utf-8",
         data: {id: SelctedValue},
         dataType: "json",
         success: function (result) {
             alert('Success');
         ;                    
         },
         error: function (result) {
             alert('Failed');
         }
     });
    
  3. 使用以下函数获取下拉列表值

     $("#dropdownlistid option:selected").text();