在MVC Razor foreach循环中编写JavaScript代码
我想在razor代码中嵌入javascript代码。我试过以下方法-在MVC Razor foreach循环中编写JavaScript代码,javascript,asp.net-mvc,razor,Javascript,Asp.net Mvc,Razor,我想在razor代码中嵌入javascript代码。我试过以下方法- <tbody> @foreach (var row in ViewBag.Retailers.Rows) //Retailers is a datatable { <tr> <td>@row["RegionName"].ToString()</td> </t
<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>
@foreach(ViewBag.Retailers.Rows中的var行)//Retailers是一个数据表
{
@行[“RegionName”]。ToString()
var marker=新对象();
marker.lat=@row[“Latitude”].ToString();
marker.lon=@row[“Longitude”].ToString();
markersArray.push(marker);
}
但是,它不起作用。有什么帮助吗?要将razor与JavaScript混合使用,您需要在单引号中包含razor代码,如下所示:
<script>
var marker=new Object();
marker.lat='@row["Latitude"].ToString()';
marker.lon='@row["Longitude"].ToString()';
markersArray.push(marker);
</script>
var marker=新对象();
marker.lat='@row[“Latitude”].ToString();
marker.lon='@row[“Longitude”].ToString();
markersArray.push(marker);
要将razor与JavaScript混合使用,您需要在单引号中包含razor代码,如下所示:
<script>
var marker=new Object();
marker.lat='@row["Latitude"].ToString()';
marker.lon='@row["Longitude"].ToString()';
markersArray.push(marker);
</script>
var marker=新对象();
marker.lat='@row[“Latitude”].ToString();
marker.lon='@row[“Longitude”].ToString();
markersArray.push(marker);
我建议您避免生成所有这些内联脚本,而是将值添加为行的数据属性
<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>
我建议您避免生成所有这些内联脚本,而是将值添加为行的数据属性
<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>
什么是
ViewBag.Retailers.Rows
?控制器发送的“数据表”。我知道这可能很愚蠢,但您是否尝试删除;从lat和long props?将值作为data-*
属性添加到循环中的表行中,然后在末尾使用一个脚本来构建数组,避免重复此脚本和呈现不必要的html。@StephenMuecke您能举个例子吗?什么是ViewBag.Retailers.Rows
?一个“DataTable”从控制器发送。我知道这可能很愚蠢,但您是否尝试删除;从lat和long props?将值作为data-*
属性添加到循环中的表行中,然后在末尾使用一个脚本来构建数组,避免重复此脚本和呈现不必要的html。@StephenMuecke是否可以发布一个示例?