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

时间:2014-07-22 02:37:48

标签: c# javascript arrays asp.net-mvc

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

1 个答案:

答案 0 :(得分:9)

您可以使用

将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]);
}

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