Jquery Выбрать загрузку обратно после ссылки sh страница - PullRequest
0 голосов
/ 30 мая 2020

Ну, это просто, и я знаю, что есть много источников об этом.
У меня есть сценарий jquery, например:

<script>
    $(document).ready(function () {
        $("#CountryId").change(function () {
            $.get("@Url.Action("GetStateList","Controllers1")", { sOId: $("#CountryId").val() }, function (data) {
                $("#StateId").empty();
                $.each(data, function (index, row) {
                    $("#StateId").append("<option value='" + row.PersonnelNumber + "'>" + row.Name + "</option>")
                });
            });
        })
    });
</script>

public JsonResult GetStateList(string sOId)
    {
        string sPositionNumber = Session["xPersonnelNumber"].ToString();

        db.Configuration.ProxyCreationEnabled = false;
        List<Employee> StateList = db.Employees.Where(x => x.OrganizationNumber == sOId && x.Name != null).OrderBy(o => o.Name).ToList();
        return Json(StateList, JsonRequestBehavior.AllowGet);
    }

После обновления страницы sh, опция StateId пуста. Как я могу сохранить список опций после того, как страница обновлена ​​sh? Если я удалю .Empty(), появится другой вариант. Это каскадный выпадающий список с использованием MVC. NET

Очень признателен.

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Ваша проблема в параметрах вашей страны, при обновлении sh автоматически выбирается первый вариант, поэтому вы можете указать желаемую страну для состояний при загрузке страницы.

<script>
    $(document).ready(function () {

        **$('#CountryId').val('desire country');**

        $("#CountryId").change(function () {
            $.get("@Url.Action("GetStateList","Controllers1")", { sOId: $("#CountryId").val() }, function (data) {
                $("#StateId").empty();
                $.each(data, function (index, row) {
                    $("#StateId").append("<option value='" + row.PersonnelNumber + "'>" + row.Name + "</option>")
                });
            });
        })
    });
</script>
0 голосов
/ 30 мая 2020

HTTP не имеет состояния. Однако есть способы сохранить данные в ASP. MVC:

  • Скрытое поле
  • Cookies
  • Строка запроса
  • ViewData
  • ViewBag
  • TempData

Хорошая статья:

https://www.c-sharpcorner.com/article/state-management-in-asp-net-mvc

Однако большинство этих методов требуют, чтобы вы отправили данные контроллеру, и поэтому данные будут потеряны при refre sh.

Таким образом, жизнеспособными вариантами являются ...

Вариант 1: Кэширование

Вы можете использовать простой кэш памяти для хранения списка с настраиваемым идентификатором, например идентификатором пользователя, в течение определенного периода времени и обновления это каждый раз, когда вызывается метод GetStateList. Заполнение начального списка при загрузке страницы из кеша.

Вариант 2: Сохранение на стороне браузера

Вы можете посмотреть на сохраняемость данных на стороне браузера и посмотреть на такие вещи, как:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...