Как очистить значение свойства модели с помощью Jquery и контроллера? - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть два каскадных выпадающих меню. Первое выпадающее меню имеет 2 значения: (Отрицательное и Положительное). Поэтому, если я выберу Отрицательное из первого выпадающего меню, второе выпадающее меню должно появиться еще с 3 значениями, и если я выберу Положительное, второе выпадающее меню должно иметь 2 значения.Эта бизнес-логика работает нормально.

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

Для этого у меня есть ajax-вызов контроллера, который будет обрабатывать все

<script language="javascript" type="text/javascript">
function GetValue(id) {
    if ($("#firstDropdownID option:selected").index() == 1) {
        $.ajax({
            url: '@Url.Action("ResetDropdownValues", "ControllerName")',
            data: '{ id: ' + id + '}',
            contentType: "application/json; charset=utf-8",
            cache: false,
            type: "POST",
            success: function (data) {
                 alert("error : " + reponse);
              },
            error: function(reponse) {
                 alert("error : " + reponse);
            }
        });
    }</script>

И это контроллер, к которому я хочу обратиться к текущей модели, чтобы очистить ее свойство

 [HttpPost]
    public ActionResult ResetDropdownValues(int id)
    {
        if (id == 1)
        {
            //Access Current Model state to clear value for a particular property
        }


        return null;
    }

А это код для изменения значения второго выпадающего, возвращающего JSonResult

if (!$("#firstDropdownID option:selected").index() == 0) {
        var procemessage = "<option value='0'> Please wait...</option>";
        $("#secondDropdownID ").html(procemessage).show();
        var url = '@Url.Action("GetSecondDropdownValue", "ControllerName")';

        $.ajax({
            url: url,
            data: '{ id: ' + id + '}',
            contentType: "application/json; charset=utf-8",
            cache: false,
            type: "POST",
            success: function(data) {
                var markup = "<option value='0'>Select Type of Issue</option>";
                for (var x = 0; x < data.length; x++) {
                    markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
                }
                $("#secondDropdownID ").html(markup).show();
            },
            error: function(reponse) {
                // alert("error : " + reponse);
            }
        });

    }

И контроллера, возвращающего JsonResult

 [HttpPost]
    public ActionResult GetSecondDropdownValue(int id)
    {
        List<ExperienceType> obj_ToIssue = new List<ExperienceType>();
        if (id == 1)
        {
            obj_ToIssue = GetValue().Where(m => m.Id != 0).ToList();
        }
        else
        {
            obj_ToIssue = GetValue().ToList();
        }

        SelectList obj= new SelectList(obj, "Id", "Name");
        return Json(obj);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...