我想在razor代码中嵌入javascript代码。我尝试了以下内容 -
<tbody>
@foreach (var row in ViewBag.Retailers.Rows) //Retailers is a datatable
{
<tr>
<td>@row["RegionName"].ToString()</td>
</tr>
<script>
var marker=new Object();
marker.lat=@row["Latitude"].ToString();
marker.lon=@row["Longitude"].ToString();
markersArray.push(marker);
</script>
}
</tbody>
但是,它不起作用。有什么帮助吗?
答案 0 :(得分:3)
要将razor与JavaScript混合使用,您需要在单引号'
中包含剃刀代码,如下所示:
<script>
var marker=new Object();
marker.lat='@row["Latitude"].ToString()';
marker.lon='@row["Longitude"].ToString()';
markersArray.push(marker);
</script>
答案 1 :(得分:3)
我建议您避免生成所有这些内联脚本,而是将值添加为行的数据属性
<tbody id="retailers">
@foreach (var row in ViewBag.Retailers.Rows) //Retailers is a datatable
{
<tr data-latitude="@row["Latitude"]" data-longitude="@row["Longitude"]">
<td>@row["RegionName"].ToString()</td>
</tr>
}
</tbody>
然后有一个脚本来构建你的数组
var markersArray = [];
$('#retailers tr').each(function() {
markersArray.push({ lat: $(this).data('latitude'), lon: $(this).data('longitude') });
});