каскадный раскрывающийся список не отображает сохраненное значение во время редактирования

Я использую каскадный раскрывающийся список для своего проекта. Он отлично работает для страницы создания, и выбранные значения были сохранены в базе данных. Но в режиме редактирования сохраненное значение не отображается в раскрывающемся списке.

ИЗМЕНИТЬ ВИД

        <div class="form-group">
            @Html.LabelFor(model => model.CatID, "Category", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("CatID", ViewBag.CatID as SelectList, "--SELECT CATEGORY--", htmlAttributes: new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.CatID, "*", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.NocID, "Nature of Occurrence", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("NocID", new SelectList(string.Empty, "Value", "Text"), htmlAttributes: new { @class = "form-control dropdown1" })
                @Html.ValidationMessageFor(model => model.NocID, "*", new { @class = "text-danger" })
            </div>
        </div>

JAVASCRIPT

<!--Cascading Dropdown for Category and Nature of Occurrence-->
<script type="text/javascript">
$(document).ready(function () {
    //Category Dropdown Selectedchange event
    $("#CatID").change(function () {
        $("#NocID").empty();
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetNoCs")',
            dataType: 'json',
            data: { id: $("#CatID").val() },
            // Get Selected Category ID.
            success: function (nocs) {
                $("#NocID").append($('<option></option>').val('').text('--SELECT NATURE OF OCCURRENCE--'));
                $.each(nocs, function (i, noc) {
                    $("#NocID").append('<option value ="' + noc.Value + '">' + noc.Text + '</option>');
                });
            },
            error: function (ex) {
                alert('Failed to retrieve categories.' + ex);
            }
        });
        return false;
    })
});

CONTROLLER

// Json Call to get nature of occurrence
    public JsonResult GetNoCs(string id)
    {
        List<SelectListItem> nocs = new List<SelectListItem>();
        var nocList = this.Getnoc(new Guid(id));
        var nocData = nocList.Select(m => new SelectListItem()
        {
            Text = m.Title,
            Value = m.NocID.ToString(),
        });
        return Json(nocData, JsonRequestBehavior.AllowGet);
    }


    // Get Nature of Occurrence from DB by CatID
    public IList<nature_of_occurrence_ref> Getnoc(Guid CatID)
    {
        return db.nature_of_occurrence_ref.Where(m => m.CatID == CatID).ToList();
    }

Любая помощь будет оценена. Спасибо. :)


person da26    schedule 09.06.2017    source источник
comment
В вашем коде есть несколько проблем. Вы не можете использовать одно и то же имя для свойства, к которому вы привязаны, и для SelectList (CatID в вашем случае), и вам необходимо заполнить оба списка SelectList в контроллере на основе значений, к которым вы привязаны. Увидеть обоих обманщиков.   -  person    schedule 09.06.2017
comment
Извините, я новичок в использовании asp.net mvc для разработки, и это для моего практического проекта. Подскажите, пожалуйста, правильный подход к этому? Спасибо.   -  person da26    schedule 09.06.2017
comment
Прочтите оба дубликата!   -  person    schedule 09.06.2017
comment
Уже нашел решение этой проблемы. Просто публикация обновления здесь заняла много времени. Я реорганизую свой код и даже способ получения данных из своей базы данных и прихожу к гораздо лучшему и чистому решению. Благодарю за помощь.   -  person da26    schedule 12.05.2018