c#razor错误:名称' i'在当前的上下文中不存在

时间:2015-07-09 20:46:31

标签: c#

我从网上提取数据列表并将我的数组放入我的下拉菜单中。我正在使用razor脚本,我在第4行得到以下错误:

The name 'i' does not exist in this current context

这是我的代码:

var select = document.getElementById('propertyMenu');
            for (var i = 0; i < @Model.propertiesArray.Length; i++)
            {
                var property = "@Model.propertiesArray[i]"
                var element = document.createElement('option');
                element.textContent = property;
                element.value = property;
            }

现在我知道使用&#39; @&#39;符号允许您通过C#在我的javascript中访问我的模型中的类。所以我的猜测是Javascript变量&#39; i&#39;除非我给它一些指示,否则无法访问。

如何访问我的int count&#39; i&#39;在上下文中?

编辑:

我回答了自己的问题。

3 个答案:

答案 0 :(得分:1)

var propertiesArray = new Array();
@foreach (var props in Model.propertiesArray)
{
    @:propertiesArray.push("@props");
}

var select = document.getElementById("propertyMenu");
for (var i = 0; i < propertiesArray.length; i++)
   {
       var property = propertiesArray[i]; 
       var element = document.createElement('option');
       element.textContent = property;
       element.value = property;
       select.appendChild(element);
   }

答案 1 :(得分:0)

无法判断您的代码是C#还是JS。

你可能必须这样做

var select = document.getElementById('propertyMenu');
        for (var i = 0; i < @Model.propertiesArray.Length; i++)
        {
            var property = @Model.propertiesArray[i].toString();
            var element = document.createElement('option');
            element.textContent = property;
            element.value = property;
        }

答案 2 :(得分:0)

因为您使用的是Javascript代码。你可以试试这个。

@{
   string values = "";
   for(int i=0;i<Model.propertiesArray.Length;i++)
      values += Model.propertiesArray[i].ToString()+(i!=Model.propertiesArray.Lenght-1)?",":"";
 }

<script>
var value = '@values';
var values = value.split(',');
var select = document.getElementById('propertyMenu');
    for (var i = 0; i < values .length; i++)
    {
        var property = values[i];
        var element = document.createElement('option');
        element.textContent = property;
        element.value = property;
    }
</script>

我写过Stackoverflow编辑器。