在嵌入式C#代码

问题描述:

获取JavaScript变量我试图写一个简单的在JS它使用的元素从C#代码中声明后面的列表。其实这里有一个问题:['i'] - 编译器不知道什么是i在嵌入式C#代码

如何我写这篇文章的正确?

for (var i = 0; i < '<%= poz.Count %>'; i++) { 
    var Latitude = '<%= poz['i'].Latitude %>'; 
} 

您的计数器变量未在您的C#代码中定义。这是一个JavaScript变量。

如果你希望你的POZ对象的值,以提供给你需要将它们写出来,希望一些JavaScript结构C#编写的一个循环的JavaScript。

你们有没有这种倒挂。 C#必须将所有数据放入JavaScript页面的HTML页面中。除非您提供API,否则JS无法获取数据。

我建议在HTML产生的JavaScript(注意,这是不完美的C#)下面的C#伪代码。

function myJsFunction() 
{ 
    var jsLattitudes = {}; 
    <% 
    int i; 
    for(i = 0; i < lattitudes.Length) 
    { 
     document.WriteLn(string.Format("jsLattitudes[{0}] = '{1}';\r\n", i, lattitues[i].Lattitude)); 
    } 
    %> 
} 

你可以做这样的事情

var locations = [ { <%= string.Join("},\n{", 
         locations.Select(l => string.Format("Longitude: {0}, Latitude: {1}", 
         l.Longitude.ToString(), 
         l.Latitude.ToString()))) %> } ] 

for (var i = 0; i < locations.length; i++) { 
    var Longitude = locations[i].Longitude; 
    var Latitude = locations[i].Latitude; 
} 

这是假设你有一个像

public class Location 
{ 
    public int Longitude { get; set; } 
    public int Latitude { get; set; } 
} 

和地点一类的IEnumerable可能是这样

var locations = new List<Location> { 
    new Location { Longitude = 10, Latitude = 20 }, 
    new Location { Longitude = 11, Latitude = 21 }, 
    new Location { Longitude = 12, Latitude = 22 } 
};