jquery 或 javascript 中有没有一种方法可以在不使用 ajax 请求的情况下在页面加载时填充下拉列表?

Posted

技术标签:

【中文标题】jquery 或 javascript 中有没有一种方法可以在不使用 ajax 请求的情况下在页面加载时填充下拉列表?【英文标题】:Is there a way in jquery or javascript to populate dropdown lists on page load without using an ajax request? 【发布时间】:2019-07-02 13:43:24 【问题描述】:

我想在页面加载时使用 jQuery 填充一些下拉列表,而不是使用 ajax 来响应我目前正在使用的事件。 我的控制器为这些下拉列表构建了几个 List 对象。 目前我使用 ajax 并且我的操作会返回数据,但这需要在渲染时出现在我的视图中。

C#代码:

    return Json(ddlVals1, JsonRequestBehavior.AllowGet)

    return Json(ddlValAnother, JsonRequestBehavior.AllowGet)

我希望在我的 jQuery 代码中执行的示例;

$(function ()

    LoadUserDropDown();
    LoadAnotherDropDown();
);

谢谢。

【问题讨论】:

【参考方案1】:

只要您将列表值传递给查看即可。例如,您可以使用 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>

【讨论】:

以上是关于jquery 或 javascript 中有没有一种方法可以在不使用 ajax 请求的情况下在页面加载时填充下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery或javascript查找页面的内存使用情况

保存当前页面或在按钮或 href 标签上触发 ctrl+s 组合 chrome jquery javascript

有没有办法在 JavaScript 或 jQuery 的点击事件中调用特定的幻灯片图像

jQuery或javascript来查找页面的内存使用情况

在javascript或jQuery中检测iframe的负载(不是同一个域,动态添加)?

使用 Jquery 或 Javascript 触发 mousemove 事件