Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换C#列表<;字符串>;到Javascript_Javascript_C#_Json_Asp.net Mvc - Fatal编程技术网

转换C#列表<;字符串>;到Javascript

转换C#列表<;字符串>;到Javascript,javascript,c#,json,asp.net-mvc,Javascript,C#,Json,Asp.net Mvc,我想将List类型的模型属性转换为在同一视图中可用的Javascript变量。 这是我的模型结构: public string Title { get; set; } public string Description { get; set; } public List<String> ImgLinks { get; set; } 但是我得到一个语法错误警告。有人能帮我转换成javascript数组和json吗?要消除“语法错误”,只需删除;最后 var imageLinks

我想将List类型的模型属性转换为在同一视图中可用的Javascript变量。 这是我的模型结构:

 public string Title { get; set; }
 public string Description { get; set; }
 public List<String> ImgLinks { get; set; }

但是我得到一个语法错误警告。有人能帮我转换成javascript数组和json吗?

要消除“语法错误”,只需删除;最后

var imageLinks = @Html.Raw(Json.Encode(Model.ImgLinks))
尽管有警告,您的代码仍然可以正常运行

如果有人感兴趣,这里有一种不同的解决方案。您可以在razor集合中循环并将值存储在Javascript数组中,如下所示

<script type="text/javascript">

    var myArray = [];

    @foreach (var link in Model.ImgLinks)
    {
        @:myArray.push("@link");
    }

</script>

var myArray=[];
@foreach(Model.ImgLinks中的var链接)
{
@:myArray.push(“@link”);
}

有一个更优雅的解决方案。您需要将列表序列化为JSON:

var imageLinks = @Json.Encode(Model.ImgLinks); // <- annoying syntax error

您可以找到有关修复此语法错误的详细信息。

您收到了哪条警告?警告是syntax errortry JSON.parse('@Html.Raw(JSON.Encode(Model.ImgLinks)));呈现页面中的这一行实际上是什么样子的?现在,我没有收到语法错误警告。我想我之前尝试过这个,但我忘记了JSON.parse使用字符串作为参数。谢谢@shekharpankaja:before myArray是什么意思?这是在razor for loop中引用javascript变量的一种方式吗?它说“这一行不是以C#的形式执行的”,应该在替换后发出(在本例中是JS)。它可能不一定是可变的。“输出一行包含纯文本或不匹配HTML标记的内容…”因此@:开始一行与开始一行几乎是相反的。我从来没有说过它没有。我正在纠正一个错误的断言,即@:与变量有关。事实并非如此。它与输出中发出的文本有关。我没有阅读您稍后所做的编辑。你的评论以前没有这些信息。你当然是对的:)
var imageLinks = @Json.Encode(Model.ImgLinks); // <- annoying syntax error
function set(value) {
    return value;
}

var imageLinks = set(@Json.Encode(Model.ImgLinks));