所以,我在一个项目中工作,当我将数据从我的视图传递到我的javascript时,我有一个问题,我有一个foreach循环但总是得到最后的元素,这是我的观点:
@foreach (var al in Model.alerts)
{
<table border="0">
<tr>
<td rowspan=3><img src= '@Html.Raw(al.Owpicture)' class="img" alt="IMAGES"/></td>
<td><label class="lb">@Html.Raw(al.cinOw)</label></td>
</tr>
<tr>
<td><label class="lb">@Html.Raw(al.Owname)</label></td>
</tr>
<tr>
<td><label class="lb">@Html.Raw(al.OwpermitNumber)</label></td>
</tr>
</table>
<script>
//this is variable to pass
var carNum = '@Html.Raw(al.carNumber)';
</script>
<input type="submit" name="Report" value="Report" onclick="IsReport(carNum)" />
,这是我的脚本代码:
function IsReport(carNum)
{
var url = '/Home/IsReport/' + carNum;
$.ajax({
type: "Post",
url: url,
data: {},
datatype: 'json',
success: function (data) { alert(carNum); },
});
}
我尝试了所有的东西,但我总是得到最后的 carNum ,所以如果有人知道我会非常感激。
答案 0 :(得分:2)
您需要尝试这种方式: -
<input type="submit" name="Report" value="Report" onclick="IsReport(@Html.Raw(al.carNumber))" />
您的代码中发生的事情是,每次迭代都会将以下内容放入您的html中。当你引用变量carnum
时,它具有上一次迭代的值。
<script>
//this is variable to pass
var carNum = '@Html.Raw(al.carNumber)';
</script>
另一种方法是使用数据属性而不是使用onclick事件: -
<input type="submit" name="Report" value="Report" data-carnum="@al.carNumber" />
并在您的脚本中
$(function(){
$("input[name=Report]").on('click',function(){
....//some code
IsReport($(this).data('carnum'));
...///some code
});
});
答案 1 :(得分:0)
function IsReport()
{
$.ajax({
type:"Post",
url:'/Home/IsReport/' + carNum,
datatype:'json',
success:function (data) { alert(data.carNum); },
});
}
上面的答案显示为data.carNum
值。