簡體   English   中英

ListboxFor在Ajax調用中的下拉列表更改時未綁定

[英]ListboxFor not Binding when dropdown change in Ajax call

我正在嘗試在用戶更改特定下拉列表時加載ListboxFor控件。 以下是我嘗試實現的代碼,但無法正常工作。 誰能指導我? 提前致謝。

@Html.ListBoxFor(c => c.ClientDemographicHospitalId, new MultiSelectList(Model.Hospitals, "Value", "Text"), new { ng_model = "hospitalDropdownList", @class = "HospitalListbox", style = "width:65%" })
$.ajax({
    url: '/Controller/ActionMethod',
    type: "POST",
    dataType: "JSON",
    data: { clientId: clientId },
    success: function (data) {
        $("#ClientDemographicHospitalId").empty();
        $("#ClientDemographicHospitalId").append($('<option></option>').val(0).html("Select Hospital"));
        $.each(data, function (i, hospitals) {
            $("#ClientDemographicHospitalId").append($('<option></option>').val(hospitals.ClientDemographicHospitalId).html(hospitals.Name));
        });
    }
});
public ActionResult GetHospitalsByClient(int clientId)
{
    JsonResult result = new JsonResult();
    var hospitals = GetHospital(clientId);
    if (hospitals != null)
    {
        result.Data = hospitals.ToList();
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
    }
    return result;
}

在此處輸入圖片說明

也許您可以通過檢查DOM元素來查看瀏覽器中呈現的HTML? 我認為問題可能就在附近,這還因為您從我假設的表中獲取了ID,並且可能正在ListBox中獲取的ID是“ 20932”,並且您試圖調用ID為#ClientDemographicHospitalId的元素,這可能與您所指向的對象不同,在這種情況下,您應該使用HospitalListbox類並調用Jquery元素,例如:

$(".HospitalListbox").empty();
$(".HospitalListbox").empty();
$(".HospitalListbox").append($('<option></option>').val(0).html("Select Hospital"));
$.each(data, function (i, hospitals) {
    $(".HospitalListbox").append($('<option></option>').val(hospitals.ClientDemographicHospitalId).html(hospitals.Name));
});

同樣在AJAX調用成功的內部,放入console.log(data);。 來確切地查看您正在接收哪些數據,並希望將其放入這些元素中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM