如何将c#中的List转换为javascript中的数组并检查数组项

Posted

技术标签:

【中文标题】如何将c#中的List转换为javascript中的数组并检查数组项【英文标题】:How to convert List in c# to array in javascript and check the array item 【发布时间】:2014-09-12 17:17:49 【问题描述】:

我有模型列表和数据库中的项目。我想将项目放入 java 脚本中的数组。然后当我将值放入文本框中并单击按钮时,系统会从数组中检查值是否存在于数组中

当我尝试这段代码时,它不起作用。有什么想法或建议吗?

型号:

public List<string> listponumber  get; set; 

public void getlist()
        
            var listpo = new List<string>();
            SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
            connection.Open();

            SqlCommand cmdponumber = new SqlCommand("Select DISTINCT ponumber From t_transaction ORDER BY ponumber", connection);

            SqlDataReader rdr = cmdponumber.ExecuteReader();
            while (rdr.Read())
            
                listpo.Add(rdr.GetString(0).ToString());
            

            connection.Close();
            listponumber = new List<string>(listpo);
        

查看:

<script type="text/javascript">

    $(document).ready(function () 

        $("#btntest").click(function () 
            var ponumber = [@Model.listponumber]
            var txtvalues = document.getElementByID("textbox").value;
            if (ponumber.indexOf(txtvalues) > -1 ) 
                alert('Array');
             else  
              alert('not array');
            
        );
</script>

【问题讨论】:

可能想看看这个问题***.com/questions/6777385/…,因为它讨论了基本相同的事情(尽管使用日期而不是字符串 - 但概念是相同的) @Tim thx 回复,我尝试了但不工作,当我调用它时出现语法错误 var activeDates = @html.Raw(Json.Encode(Model.ActiveDates)); 如果listponumber是你模型中的属性名,那么它需要是@Html.Raw(Json.Encode(Model.listponumber)) @stephen 是的,我使用它,但是当我用“;”关闭时语法错误 【参考方案1】:

您可以使用以下方法将 C# 列表转换为 Javascript 数组

<script>
    var javascriptArray = @Html.Raw(Json.Encode(Model.ListToConvertToJavascript));
</script>

这将创建一个 Json 对象,其中包含模型中列表中的数据,您将能够使用纯 Javascript 对其进行迭代。

您可能遇到的语法错误是 IDE 告诉您您正在使用 Javascript 解析器无法理解的语法,即 RAZR 语句 @Html(...);你可以忽略它。

使用以下方法进行测试:

for(int i = 0; i < $(javascriptArray).lenght; i++)
    alert(javascriptArray[i]);

或者打开您的浏览器开发者控制台并输入您正在创建的数组的名称以查看它是否由您的模型列表数据填充。

【讨论】:

确保在 Json.Encode(Model.ListToConvertToJavascript)... 之后在模型中使用相同的列表名称...其中 ListToConvertToJavascript 是您的列表名称:listponumber @putra1908 javascript 希望您将代码的 @html.raw(...) 部分包含在 '' 中以将其视为字符串,但这样做您将无法将 ponumber 作为数组进行迭代。然后它将变成一个字符串,当您尝试使用它时,javascript 会尝试解析它。

以上是关于如何将c#中的List转换为javascript中的数组并检查数组项的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 MVC C# List<int> 转换为 javascript 数组?

如何将 C# 中的 Dictionary <string,List<string>> 转换为带有键作为标题的 csv?

怎样将JAVA中得list集合转换为javascript的二维数组?

将 List<string> 中的元素转换为 C# (Unity3d) 中的 List<Texture>

将 Javascript 数组转换为 C# 列表

转载C#使用ToList()将数组快速转换为List集合