[英]Trying to loop through linq query results and display in js code
我正在使用Google Maps API在網頁上顯示位置。 我已經使用靜態位置進行工作,如下面的js代碼所示。 我已經將確切的位置放入sql表中,而是想通過使用表而不是硬編碼位置來顯示位置。 基本上我想遍歷我的linq結果,並在javascript代碼中顯示出來。 所以var location =(我的結果集)我知道我的代碼還很遙遠,但是認為這將有助於顯示我要完成的工作。 任何幫助,將不勝感激! 謝謝
protected void Page_Load(object sender, EventArgs e)
{
using (var db = new DataClasses1DataContext())
{
var place = (from p in db.Coordinates
select new {locName = p.LocationName,
Coord1 = p.Coordinate1,
Coord2 = p.Coordinate2}).ToList();
//List<string> listPlaces = new List<string>();
foreach (var result in place)
{
string name = place.locName;
bool Coordinate1 = place.Coord1;
bool Coordinate2 = place.Coord2;
}
}
}
<script type="text/javascript">
var locations =
['Bondi Beach', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],
['Manly Beach', -33.80010128657071, 151.28747820854187],
['Maroubra Beach', -33.950198, 151.259302]
];
編輯:我確實使它能夠正確處理表中的第一條記錄,但最終結果需要是所有行。
C#:var place =(從db.Coordinates中的p,其中p.LocationName ==“ Adam”選擇p).FirstOrDefault(); 名稱= place.LocationName; coord1 = place.Coordinate1.Value; coord2 = place.Coordinate2.Value;
Javascript:var name2 =“ <%= name%>”; varordinate1 =“ <%= coord1%>”; varordinate2 =“ <%= coord2%>”;
您有很多選擇:將其構建為字符串,在對象上使用JsonSeralizer,對方法進行AJAX調用以獲取JSON,還有許多其他選擇...
對我來說,將其構建為字符串是一種簡單的方法(對於具有這種復雜性和大小的對象):
在aspx頁面上:
<script type="text/javascript">
var locations = <asp:literal id="locations" runat="server" />;
</script>
碼:
StringBuilder sb = new StringBuilder();
bool isFirst = true;
foreach (var result in place)
{
if (!isFirst)
{
sb.Append(",");
}
isFirst = false;
//Add the item data
sb.AppendFormat("['{0}', {1}, {2}]", result.locName, result.Coord1, result.Coord2);
}
locations.Text = sb.ToString();
您還可以使用Page.ClientScript.RegisterClientScriptBlock
將腳本以更動態的方式添加到頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.