更新 m 模态后的加载下拉列表



我对MVC非常陌生,我有一个在网络表单中非常简单的问题。我在表单上有一个下拉列表。我有一个按钮可以加载一个模态表单,允许用户即时将项目添加到数据库中。然后,我需要使用表的新内容更新下拉列表。我意识到我需要 ajax 来执行此操作,但我对如何启动更新感到非常困惑!

我有带有以下下拉菜单的表单。

            <div class="form-group form-group-sm required">
                @Html.LabelFor(m => m.ListingData.Transmission, new { @class = "col-md-4 control-label" })
                <div class="col-md-8">                        
                    @Html.DropDownListFor(m => m.ListingData.Transmission, (SelectList)ViewBag.TransmissionList, new { @class = "form-control"} )
                    @Html.ValidationMessageFor(m => m.ListingData.Transmission, "", new { @class = "text-danger" })
                    <p class="form-text"><a data-modal='' href='@Url.Action("QATransmission", "Admin", new { ListingId = Model.ListingData.ListingId}))' id=''>Quick Add Manufacturer</a></p>
                </div>
            </div>

我在主页中使用此 ajax 来调用控制器中的加载列表代码。

 $(function () {
        $.ajax({
            type: "GET",
            url: "Admin/LoadTransmissionList",
            data: JSON,
            cache: false,
            success: function (data) {
                $.each(data, function (index, value) {
                    $('#Transmission').append('<option value="' + value.TransmissionText + '">' + value.TransmissionText + '</option>');
                });
            }
        });
    });

这是我的列表控制器代码:

[HttpPost]
    public JsonResult LoadTransmissionList()
    {
        var lstTrans = db.Transmissions.ToList();
        List<SelectListItem> list = new List<SelectListItem>();

        foreach (Transmission p in lstTrans)
        {
            list.Add(new SelectListItem() { Value = p.TransmissionText.ToString(), Text = p.TransmissionText.ToString() });
        }

        return Json(list, JsonRequestBehavior.AllowGet);
    }

我有一个模态表单,它有一个用于输入新列表项的文本框。我需要保存到数据库,这有效,但是然后!我无法想出重新加载列表框内容部分。 任何帮助!

谢谢!

1)像这样更改代码

    success: function (data) {
 $('#ListingData_Transmission').html("")
                    $.each(data, function (index, value) {
                        $('#ListingData_Transmission').append('<option value="' + value.TransmissionText + '">' + value.TransmissionText + '</option>');
                    });
                }

希望这现在应该有效

2)将表单设置为部分视图,并在将某些内容保存到数据库时重新加载它。

如果有任何问题,请告诉我

最新更新