Skip to content Skip to sidebar Skip to footer

How To Pass Dynamically Created Options In Multi Select Box To Mvc Controller

Please help. I'm using MVC, razor 3, jquery. I dynamically create a multi select box when a dropdown selection changes. I bind the multiple selection to a List in my model. And it

Solution 1:

This is the latest and working code, thanks to @StephenMuecke:

<scripttype="text/javascript">
$(function () {
        $('#ddPartsToCreate').live('change',function () {
        var selectedPart = this.value;
        if (selectedPart < 6 || $("#txtOrderNumber").val()=="")
        {
            $("#divAvailableAssemblies").attr("hidden", "hidden");
            return;
        }

        $("#divAvailableAssemblies").removeAttr("hidden");

        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetSelectingAssembliesFromOrder", "Home")',
            data: JSON.stringify({ orderNumber: $("#txtOrderNumber").val() }),
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            cache: false,
            async: false,
            success: function (response) {
                var returnedData = JSON.parse(response);
                var selectingAssemblies = $("#Request_SelectingAssemblies");
                $.each(returnedData, function (index, item) {
                    selectingAssemblies.append($('<option></option>').val(item.Value).html(item.Text));
                });

            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(errorThrown);
            }
        });
    });


});

publicActionResultGetSelectingAssembliesFromOrder(String orderNumber)
    {
        returnJson(model.GetSelectingAssembliesFromOrder(orderNumber), JsonRequestBehavior.AllowGet);
    }



    publicStringGetSelectingAssembliesFromOrder(String orderNumber)
    {
       //...StringBuilder sb = new StringBuilder();
        sb.Append("[");
        foreach (var assembly in pr.ShipParts)
        {
            string assemblyName = assembly.Mark.Trim();
            sb.Append(String.Format(",{{\"Text\":\"{0}\", \"Value\":\"{1}\"}}", assemblyName, assemblyName));//JSON to build the list//...
        }

        sb.Append("]");
        sb.Remove(1, 1);//remove extra comma
        _db.SaveChanges();
        return sb.ToString();
    }

Post a Comment for "How To Pass Dynamically Created Options In Multi Select Box To Mvc Controller"