MVC 4在这些级联下拉菜单上缺少任何东西



你好,晚上好,大家好,我正试图获得数据时,我的一个下拉选择的索引变化这里是我的代码,我无法得到我在哪里失踪或做错了什么,我很高兴,如果你帮助我,谢谢。

这是我的脚本代码

$("#ddOrder").change(function (e) {
            alert = "basıldı";
            var oID = $(this).val();
            $.getJSON("../Accessory/loadWorkshops", { _orderId: oID },
                   function (data) {
                       var select = $("#ddAcc");
                       select.empty();
                       select.append($('<option/>', {
                           value: 0,
                           text: "Aksesuar seçiniz"
                       }));
                       $.each(data, function (index, itemData) {
                           select.append($('<option/>', {
                               value: itemData.Value,
                               text: itemData.Text
                           }));
                       });
                   });
        });

这些是我的控制器代码

public ActionResult addAccessoryShipment()
    {
        if (Session["_userName"] == null)
        {
            return RedirectToAction("Index", "Home");
        }
        HelperPartial _helper = new HelperPartial(
            ViewData,
            Session["_userName"].ToString(),
            Session["_userPermissionId"].ToString()
            );
        Repository<Order> _ro = new Repository<Order>();
        IEnumerable<SelectListItem> _orderSelectListItem = _ro.All().AsEnumerable().Select(s => new SelectListItem
        {
            Text = s.code,
            Value = s.id.ToString()
        }).OrderBy(o => o.Text);
        ViewData["ddOrder"] = _orderSelectListItem;
        Repository<AccessoryList> _ra = new Repository<AccessoryList>();
        IEnumerable<SelectListItem> _clothSelectListItem = _ra.All().AsEnumerable().Select(s => new SelectListItem
        {
            Text = s.name,
            Value = s.id.ToString()
        }).OrderBy(o => o.Text);
        ViewData["ddaList"] = _clothSelectListItem;

        return View();
    }
    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult loadWorkshops(string _orderId)
    {
        //IEnumerable<MyCustomerProductType> _myCustomerProductType = _rc.All().Select(s => new MyCustomerProductType { id = s.id, customerName = s.customer.name, productTypeName = s.productType.name });
        int _oId = Convert.ToInt32(_orderId);
        Repository<OrderCloth> _ra = new Repository<OrderCloth>();
        IEnumerable<MyOrderCloth> _clothSelectListItem = _ra.All().Where(o => o.orderId == _oId).Select(s => new MyOrderCloth
        {
            workshopName = s.workshop.name,
            workshopId = s.workshopId
        });
        List<SelectListItem> _workshopListItem = new List<SelectListItem>();
        foreach (MyOrderCloth item in _clothSelectListItem)
        {
            _workshopListItem.Add(new SelectListItem
            {
                Text = item.workshopName,
                Value = item.workshopId.ToString()
            });
        }
        //ViewData["ddwList"] = _workshopListItem;
        return Json(_workshopListItem, JsonRequestBehavior.AllowGet);
    }

这里是我的视图代码

  @using (Html.BeginForm("AccessoryShipmentAdd", "Accessory", FormMethod.Post))
{
        @Html.ValidationSummary(true)
    <div class="control-group">
        <label class="control-label">Sipariş No</label>
        <div class="controls">
            @Html.DropDownListFor(model=>model.orderId,(IEnumerable<SelectListItem>)ViewData["ddOrder"],"seçim yapınız",new {id="ddOrder", @class = "span6 chosen"})
        </div>
        @Html.ValidationMessageFor(model => model.orderId)
    </div>
    <div class="control-group">
        <label class="control-label">Atölye Seçiniz</label>
        <div class="controls">
            @Html.DropDownListFor(model=>model.workshopId,new SelectList(Enumerable.Empty<SelectListItem>(),"workshopId","workshopName"),"seçim yapınız",new {@id="ddAcc" ,@class = "span6 chosen"})
        </div>
        @Html.ValidationMessageFor(model => model.workshopId)
    </div>
    <div class="control-group">
        <label class="control-label">Aksesuar Seçiniz</label>
        <div class="controls">
            @Html.DropDownListFor(model=>model.accessoryListId,(IEnumerable<SelectListItem>)ViewData["ddaList"],"seçim yapınız",new { @class = "span6 chosen"})
        </div>
        @Html.ValidationMessageFor(model => model.accessoryListId)
    </div>

我可以从loadWorkshops类获得数据,但它不会返回到我的下拉菜单。我能做些什么呢?

试试这个(改变"/> "选项">"):

$("#ddOrder").change(function () {
        var oID = $(this).val();
        $.getJSON("../Accessory/loadWorkshops", { _orderId: oID },
            function (resultData) {
                var selectACC = $("#ddAcc");
                selectACC.empty();
                selectACC.append($('<option>', {
                    value: 0,
                    text: '-- Aksesuar seçiniz --'
                }));
                $.each(resultData, function (index, itemData) {
                    selectACC.append($('<option>', {
                        value: itemData.Value,
                        text: itemData.Text
                    }));
                });
            });
    });

将控制器更新为如下内容:

//Place the fetching of data in private
private IList<MyOrderCloth> GetClothOrders(int _orderId)
{
    Repository<OrderCloth> _ra = new Repository<OrderCloth>();
    IList<MyOrderCloth> clothOrders = null;
    clothOrders = _ra.MyOrderCloth.Where(o => o.orderId == _orderId).ToList();
    return clothOrders;
}
//Accessed by Javascript
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult loadWorkshops(string _orderId)
{
    int id = 0;
    if (!string.IsNullOrEmpty(_orderId))
    {
        id = Convert.ToInt32(_orderId);
    }
    var clothList = GetClothOrders(id);
    var clothData = clothList.Select(a => new SelectListItem()
    {
        Text = a.workshopName.ToString(),
        Value = a.workshopId.ToString(),
    });
    return Json(clothData, JsonRequestBehavior.AllowGet);
}

相关内容

最新更新