Есть ли способ в jquery или javascript, чтобы заполнить раскрывающиеся списки при загрузке страницы без использования ajax-запроса? - PullRequest
0 голосов
/ 08 февраля 2019

Я хотел бы заполнить несколько раскрывающихся списков с помощью jQuery при загрузке страницы, а не с помощью ajax, отвечающего на событие, которое у меня есть в настоящее время и работает.Мой контроллер строит несколько объектов List для этих выпадающих списков.В настоящее время я использую ajax, и мои действия возвращают данные, но это должно быть, на мой взгляд, при рендеринге.

C # code:

    return Json(ddlVals1, JsonRequestBehavior.AllowGet)

    return Json(ddlValAnother, JsonRequestBehavior.AllowGet)

Пример того, что я хочу сделать в моемКод jQuery;

$(function ()
{
    LoadUserDropDown();
    LoadAnotherDropDown();
});

Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2019

Возможно, если вы передадите значения списка для просмотра.Например, вы можете использовать ViewBag для передачи временных данных в View.

// Action
public ActionResult Index()
{
    ViewBag.FirstDropDownList = new List<string>() { "Item 1", "Item 2" };
    ViewBag.FirstDropDownListJson = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.FirstDropDownList);
    return View("Index");
}

// View using razor
<select>
@foreach(var item in ViewBag.FirstDropDownList) 
{
    <option value="@item">@item</option>
}
</select>

// View using jQuery
<select id="dropdown1"></select>
<script>
    $(function(){
        var dropdown1List = JSON.parse('@Html.Raw(ViewBag.FirstDropDownListJson)');
        $('#dropdown1').html($.map(dropdown1List, a => `<option value="${a}">${a}</option>`));
    });
</script>
...