1

所以,我在一个项目中工作,当我将数据从我的视图传递到我的 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,所以如果有人有任何想法,我将不胜感激。

4

2 回答 2

3

您需要尝试这种方式:-

<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>

另一种方法是使用 data 属性而不是使用 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
});

});
于 2013-04-28T19:45:19.580 回答
0
    function IsReport()
       {
            $.ajax({
            type:"Post",
            url:'/Home/IsReport/' + carNum,
            datatype:'json',
            success:function (data) { alert(data.carNum); },
        });
       }

上面的答案显示的是data.carNum值。

于 2013-06-24T11:48:28.897 回答