2016-06-29 9 views
0

MVCコントローラメソッドが次のコードで呼び出されておらず、問題が明確ではありません。 。$( "#スクリーナー")のval()文字列のリストを返す:コントローラでAJAX/JSON MVCメソッドが呼び出されない

<script> 
    $(document).ready(function() { 

     $("#submitScreeners").click(function() { 

      var selected = $("#screeners").val(); 

      $.ajax({ 
       contentType: 'application/json; charset=utf-8', 
       dataType: 'json', 
       type: 'POST', 
       url: '/Applicant/PassScreeners', 
       data: "selected=" + JSON.stringify(selected), 
       success: function() { 
        $('#result').html('"PassScreeners()" successfully called.'); 
       }, 
       failure: function (response) { 
        $('#result').html(response); 
       } 
      }); 
     }); 
    }); 
</script> 

は方法:私が正しくあなたを理解していれば

public void PassScreeners(List<string> selected) 
{ 
    Session["SelectedApplicants"] = selected.Select(e => Int32.Parse(e.ToString())).ToList(); 
} 
+0

コントローラの[PassScreeners]メソッドは、[HttpPost]などで飾られていますか? –

+0

それは現在ではありませんが、私は両方とも一緒に試してみました。 – Roka

+0

リクエストしたときのHTTP応答は何ですか?それは404、または何かを戻していますか? –

答えて

0

、 "選択" パラメータが渡されていますヌル値として。私はあなたが間違ったデータ形式を使用しているためだと思います。 JSONでフォーマットされたデータを期待するようにサーバーに指示しますが、 '='のフォーム値に近いものを渡します。

データラインから「選択=」ビットを削除し、文字列化されたリストを渡してみてください。

これでうまくいかない場合は、トレースを確認して投稿してください。投稿している文字列がカンマで区切られている場合や、POSTが正常に動作するためには配列である必要があります。

私が誤解した場合にはお詫び申し上げます。

+0

これはIEとChromeで動作するようになりましたが、Firefoxがうまくいかない理由は何ですか? – Roka

+0

あなたはフィドラーなどの要求のトレースを投稿できますか? –

関連する問題