繁体   English   中英

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

[英]How to convert List in c# to array in javascript and check the array item

我有模型中的列表和数据库中的项目。 我想把项目放在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>

您可以使用将C#List转换为Javascript数组

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

这将创建一个Json对象,其中包含模型中List内的数据,您将能够在纯Javascript中迭代它。

您可能会得到的语法错误是IDE告诉您使用的是Javascript解析器无法理解的语法,这是RAZR sentece @Html(...); 你可以忽略它。

使用以下方法测试:

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

或打开浏览器开发人员的控制台并键入要创建的阵列的名称,以查看它是否由模型列表数据填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM