Q:

posting the value from a DDL back to code behind

MVC Using an exmaple I found online I have populated a dictionary and passed it to the view. I can view the drop down list and select different values. But my Q is how can I call a function in code behind with the new value selected posted back to code behind?
  //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"}
                                        )

A:

you need to write function in Controller to pass the value.
[Post]
Post_MethodName(string Id)
{
}

Use following jQuery Ajax call to post the value to that function.
$.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');
     }
 });

Use following function to get drop down list value
 $("#dropdownlistid option:selected").text();

