重新填充/刷新<select asp-items =“”>下拉列表

时间:2018-04-11 15:42:06

标签: javascript asp.net ajax

我正在使用ASP.NET Web应用程序。在我的MvcController.cs-class中,我有一个列表如下: //实例化提供功能的API。 public static readonly Api _api = ApiHandler.GetApi(); ///&lt; summary&gt; ///提供用于选择捕获设备的下拉值。 ///&lt; / summary&gt; public static IEnumerable&lt; string&gt; CaptureDevices = _api.GetCaptureDeviceIds(); 在我的Index.cshtml(视图)中,我有以下div元素,它使用asp-item tag-helper用下面列表中的值填充下拉列表&#34; CaptureDevices&#34;: &lt; div class =&#34; input-group&#34; ID =&#34; myDiv&#34;&GT;     &lt; select asp-items =&#34; @(new SelectList(MvcController.CaptureDevices))&#34;         ID =&#34; ddlCaptureDevices&#34; title =&#34;&lt; i class =&#39; fas fa-filter&#39;&gt;&lt; / i&gt;选择...&#34;&GT;     &LT; /选择&GT;&LT; / DIV&GT; 下拉列表在网站首次启动时填充。我有一个调用API的按钮,以便更新捕获设备列表: &lt; button type =&#34; button&#34; id =&#34; btnUpdateListOfCaptureDevices&#34;&gt;&lt; i class =&#34; fas fa-retweet&#34;&gt;&lt; / i&gt;更新设备&lt; / button&gt; 在Javascript中,我使用AJAX调用来更新捕获设备列表: window。$(&#34;#btnUpdateListOfCaptureDevices&#34;)。click(function(){     //执行AJAX调用...     窗口。$。阿贾克斯({     // ...     }); } 目前,我必须通过F5重新加载整个网站(Index.cshtml),以便更新下拉列表值。 有没有办法,更新asp-items =&#34; @(新的SelectList(MvcController.CaptureDevices))&#34;点击按钮而不必重新加载整个网站?

1 个答案:

答案 0 :(得分:0)

你不应该这样做;它很简单,可以从AJAX数据源中删除和重建列表:

$.ajax({ 
  .
  .
  success: function(d) {
        $ddl = $("#ddlCaptureDevices");
        $ddl.empty();
        $ddl.append($("<option/>").val("value").html("text"));

我不知道你的数据源是什么样的,所以我不能写一个更好的例子。我也没有将jQuery方法链接在一起,只是为了更好地说明在这个过程中会发生什么。