2012-05-03 15 views
0

アクションに整数値の配列(フォーム上の選択されたチェックボックス値に基づく)を提供したいと思います。私は...次のようにAjax.ActionLinkを使用しようとAjax.ActionLinkを使用してアクションに値の配列を渡す

<%= Ajax.ActionLink("Submit", "PrintPinLetters", "EPOC", new { selectedItemsToPrint }, new AjaxOptions { HttpMethod="POST", UpdateTargetId = "PrintConfirmation", LoadingElementId = "resultLoadingDiv", OnFailure="handleError"}, new { id = "btnPrintPinLetter" }) %>        

が、routeValueセクションに合格するかわからないですしています。コントローラでの私の行動は基本的に私は「selectedItemsToPrint」に配列(またはID値のカンマ区切りリスト)を渡すために探しています

[HttpPost] 
    public ActionResult PrintPinLetters(Int64[] selectedItemsToPrint) 
    {       

...と定義されます。このリストは、テーブルの複数の行にあるチェックボックス(すべて同じ名前)で定義された値を使用してビルドされます。

私はAjax.BeginFormを使用しましたが、これはネストされたフォームになりましたので、古いブラウザ(IE 7および8)を使用すると予測できない結果になりました。

+0

使用のようになるはずです 'リットル「Int64」の代わりに「ong」 –

答えて

0

通常、私はajaxをjQuery呼び出しで自分で行います。このように設定すると、Ajax.ActionLink()を使用する代わりにHtml.ActionLink(.... {id = "myid"})を使用して

  1. のように設定します。 ID
  2. $(document).ready(function() { 
        $('#myid').click(function() { 
         var allElements = $('#container').find('input').serialize(); 
         $.post(action, allElements, function (data) { 
          // add your code here to process the data returned from the post. 
         }); 
    
         return false; // dont post the form 
        }); 
    }); 
    
  3. バインディングがあなたのActionResult

  4. で正しく動作しますので、selectedItemsToPrintへの入力要素のすべてのname属性を設定することを忘れてはいけないonready関数を作成し、あなたのリンクを与えることを忘れてはいけません

HTMLはこの

<div id="container"> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue0" /> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue1" /> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue2" /> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue3" /> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue4" /> 
    <input type="checkbox" name="selectedItemsToPrint" value="somevalue5" /> 
</div> 
+0

このKevinのおかげで、私の行動の署名はどうすればいいのですか?また、アクションを呼び出すためにURLをどうすればよいでしょうか?私は '/ EPOC/PrintPinLetters'を試していますが、私の行動には足りないようです。 –

関連する問題