0

次のコードを使用してフォームを投稿していますが、フォーム データがコード ビハインドに渡されませんか?

 <script type="text/javascript">
        $(document).ready(function () {

            $("#Submit").live("click", function () {
                var formData = $("#CreateOrder").serialize();
                $.post("/Orders/SaveExtra", formData, function (result) {                    
                    if (result.created) {
                        alert("Saved successfully!");
                    } else {
                        alert("Error!");
                    }
                });                
            });
        });
    </script>

    <input id='Submit' type='submit' value='Save Extra' style="height: 30px; width: 130px; margin-top:8px;margin-right: 15px; float:right " />   

<form id="CreateOrder" method="post" action="/Orders/Create" enctype="application/x-www-form-urlencoded" >     


...

</form>

保存するメソッドとは別のメソッドを呼び出すメイン フォームがあるため、2 つの送信が必要ですが、フォームからデータを送信していないようです。

4

2 に答える 2

0

投稿の最初のパラメーターで、サービスのフルパスを指定する必要があります。例:

$.post("http://localhost:8080/Orders/SaveExtra", formData, function(result){...}

ちなみに、jqueryのバージョンが1.7より大きい場合は、.live()が非推奨になっているため、.live()を.on()に変更することをお勧めします。

于 2012-06-06T10:23:23.837 に答える
0

受け取っているデータが の場合、それを値JSONとして POST 呼び出しに追加しdatatypeます。

   $.post("/Orders/SaveExtra", formData, function (result) {                    
           if (result.created) {
                alert("Saved successfully!");
            } else {
                   alert("Error!");
            }
   },"json");

また、jQuery 1.7 以降を使用している場合は、on代わりにに切り替えることをお勧めしますlive。したがって、コードは次のようになります

 $(function(){
      $(document).on("click","#Submit",function(e){
          e.preventDefault();
          var formData = $("#CreateOrder").serialize();
          $.post("/Orders/SaveExtra", formData, function (result) {                    
              if (result.created) {
                   alert("Saved successfully!");
               } else {
                   alert("Error!");
               }
         },"json");   
       });
 });
于 2012-06-06T12:07:25.627 に答える