asp.net razor For Each语法

时间:2017-04-13 15:36:42

标签: javascript asp.net-mvc vb.net asp.net-mvc-4 razor

我有一些asp.net razor语法问题。我有这个JavaScript数组,想把它转换为razor语法:

var Vendors = [
          "ActionScript",
          "AppleScript",
          "Asp",
          "BASIC",
          "C"
                ];

要:

var Vendors = [
        @For Each Vendor In ViewBag.VendorsList

           @Vendor.Name + ","

        Next
        ];

但是有一些错误,正确的方法是什么?很多。

2 个答案:

答案 0 :(得分:4)

建议在其他地方处理您的数据,表示层最好只做一件事,UI。如果在客户端需要这个数组,那么你必须从C#代码(服务器端)返回它。否则,如果您在客户端有阵列并希望对其进行操作,只需将其发布到服务器并在那里进行处理。

你在这里想要完成的事情并不是很清楚。

答案 1 :(得分:0)

看起来你在服务器端变量中有一个值列表,你想把它作为一个数组注入到视图的JS代码中....

所以(我把这个盲目编码,所以可能需要一些调整)......

 @{
      List<script> mylist = ViewBag.VendorsList == null ? new List<script>() : (List<script>)ViewBag.VendorsList;
      string delim = "";
}


<script>
var vendors = [
     @foreach(var item in mylist) {
       string theOutput = delim + "\"" + item + "\"";
       delim = ","
     <text>
     @theOutput
     </text>

     }
];
</script>