2011-11-14 9 views
0

動的リストがあり、選択したアイテムをビューからコントローラに戻す必要があります。私はこの問題は、私は動的リストを持っていると私は私も同じ形式でテキストエリアを持っているMVC3動的リスト更新の問題

<table> 
    <tr> 
    @foreach (var item in mylist) 
    { 
    <td><img src='@item.PictureUrl'/><br />@Html.CheckBox(@item.Id,@item.checkedin)@item.Name</td> 
} 
</tr> 
</table> 

を使用していますので、水平方向に表示する必要があるリンクCheckboxList in MVC3 View and get the checked items passed to the controllerをチェックしています。

コントローラポストの方法では、テキストエリアの値にアクセスできますが、リストまたはチェックされたアイテムにはアクセスできません。助けてください。

また、私のリストを表示してチェックリストの項目を返す他の方法がありますか?

私はMVCを初めて利用しています。何か助けていただければ幸いです。

感謝のjQueryを使用して

+0

これはあなたに役立つかもしれませんhttp://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx – Rafay

答えて

0

が最善の方法である: 1 - ダウンロードJquery.json.jsとあなたのビューに追加します。

<script src="../../Scripts/jquery.json.js" type="text/javascript"></script> 

2-全員に ".cssMyClass" を追加チェックボックスあなたは自分のCSSクラスで値をつかむことができるように:あなたは、私がArrayに選択されたすべての値を追加しましたし、私はそれを渡されました見ることができるよう

<script type="text/javascript" > 
     $(document).ready(function() { 
      $("#btnSubmit").click(sendValues); 
     }); 

    function populateValues() 
    { 
     var data = new Array(); 
     $('.myCssClas').each(function() { 
      if ($(this).attr('checked')) { 
       var x = $(this).attr("value"); 
       data.push(x); 
      } 
     }); 

     return data; 
    } 

    function sendValues() { 
     var data = populateValues(); 
       $.ajax({ 
        type: 'POST', 
        url: '@Url.Content("~/Home/Save")', 
        data: $.json.encode(data), 
        dataType: 'json', 
        contentType: 'application/json; charset=utf-8', 
        success: function() { alert("1"); } 
       }); 

     } 



</script> 

に「ホーム」の「保存」アクションCアヤックス
*によってontroller - コントローラで使用すると、引数として配列を追加することで値を受け取ることができます。

[HttpPost] 
     public ActionResult Save(int[] val) 
     { 

私はあまりを検索したが、どうやらこれは唯一のソリューションです。よりよい解決策が見つかったら教えてください。