Javascript在mvc中无效(关于checkboxlist更改)

时间:2015-08-12 09:24:40

标签: javascript asp.net-mvc asp.net-mvc-4

我尝试获取checkboxlist的选定值。我想将值发送到UrunList action.Each值将保存在Viewbag.abc中然后Viewbag将被发送创建视图(另一个视图)。但我无法从checkboxlist中获取值用javascript

脚本

<script>
$(document).ready(function ()
{
    $('#urunsec').change(function () {
        var id=$('#urunsec').value();
        $ajax({
            url:'Fatura/UrunList',
            type:'POST',
            data: { id: id },
            success: function () {
                alert('suc');
            },
            error: function (error) {
                alert('error')
            }

        })
    });
});

UrunList查看

@foreach (BillApplication.Models.Urunler con in Model )
    {
        <tr>
            <td>
               <input id="urunsec" type="checkbox" name="urunsec" value="@con.UrunId.ToString()" />
                <input name="urunsec" type="hidden" value="false" />
            </td>
            <td>@con.UrunId</td>
            <td>@con.UrunAdi</td>
            <td>@con.UrunFiyat</td>
            <td>@con.AltkategoriId</td>
            <td colspan="4"></td>
        </tr>

    }
    <tr>
        <td>
            <input id="Button1" type="button" value="button" onclick="location.href = '@Url.Action("Create", new { idlist= @ViewBag.abc as List<String>})'" />

        </td>
    </tr>

UrunList操作

[HttpPost]
    public ActionResult UrunList(string id)
    {
        this.UrunList(id);
        List<String> idlist = new List<String>();
        idlist.Add(id);
        ViewBag.abc= idlist;
        return RedirectToAction("Create");
    }

创建视图

<td><textarea id="txt_urunler" rows="2" cols="20" style="border-style:inset; width:150px; border-width:0.2em; border-color:gainsboro">

                    @if (@ViewBag.abc != null)
                    {
                        foreach (var i in ViewBag.abc) 
                        { 
                            @i
                        }
                    }
                </textarea>
               </td>

制作行动

public ActionResult Create(List<String> idlist)
    {
        string virgul = ",";
        ViewBag.virgul = virgul;

        if (idlist != null)
        {
            ViewBag.abc = idlist;
        }
        return View();
    }

1 个答案:

答案 0 :(得分:0)

相同的ID可能是此问题的原因。您应该尝试为每个元素分配不同的id(某些唯一值),或者您可以尝试: -

 @foreach (BillApplication.Models.Urunler con in Model )
{
    <tr>
        <td>
           <input type="checkbox" name="urunsec" value="@con.UrunId.ToString()" onclick="ClickMe(this);" />
            <input name="urunsec" type="hidden" value="false" />
        </td>
        <td>@con.UrunId</td>
        <td>@con.UrunAdi</td>
        <td>@con.UrunFiyat</td>
        <td>@con.AltkategoriId</td>
        <td colspan="4"></td>
    </tr>

}
<tr>
    <td>
        <input id="Button1" type="button" value="button" onclick="location.href = '@Url.Action("Create", new { idlist= @ViewBag.abc as List<String>})'" />

    </td>
</tr>

<script>

function ClickMe(ref) {
    var id=$(ref).value();
    $.ajax({
        url:'Fatura/UrunList',
        type:'POST',
        data: { id: id },
        success: function () {
            alert('suc');
        },
        error: function (error) {
            alert('error')
        }

     })
  }

 </script>

这适用于您的情况。