2016-04-13 4 views
4

.net mvcとjqueryを使用してイベント管理用のWebアプリケーションを作成しています。 SeatPlansControllerという名前のmvc web app.contollerを作成し、SeatPlanesというモデルを作成し、データをデータベースに挿入することができました。 しかし、mvcコントローラを使用してjqueryからデータベースにデータを渡すことができません。コントローラIDを作成ポストでmvc .net web appのjquery(カスタムビューページ)からcontoller postアクションを呼び出す方法

 

    // GET: SeatPlans/Create 
    public ActionResult Create() 
    { 
     return View(); 
    } 

    // POST: SeatPlans/Create 
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598. 
    [HttpPost] 
    [ValidateAntiForgeryToken] 

public ActionResult Create(String seat_id, String seat_no) 
     { 
      int id = 10; 
      SeatPlans S = new SeatPlans(); 
      S.seat_id = seat_id; 
      S.seat_no = seat_no; 
      if (ModelState.IsValid) 
      { 


       db.SEATPLAN.Add(S); 
       db.SaveChanges(); 
       // return RedirectToAction("Index"); 
      } 

      return View(S); 
     } 


以下のように

私のコントローラのアクションコードは、主キーであるので、私は、引数としてseat_idseat_noを通過したい、それがデータベースを更新する必要があります。

私は

よう

http://localhost:52348/SeatPlans/Create 

を使用してgetメソッドを作成しますが、どのように私は、引数 ブラウザから直接POSTメソッドを実行することができる何かを実行することができています次のJavaScript

function getPerson(id) { 

    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("create", "SeatPlanesController")', 
     contentType: "application/json; charset=utf-8", 
     data: {eat_id :6, seat_no:8}, 
     dataType: "json", 
     success: function (result) { 
      alert(result); 
      //window.locationre = result.url; 
     } 
    }); 
} 

を使用

http://localhost:52348/SeatPlans/Create/2/3t/e 

私は以下のようにスクリプトを変更しました。 GETメソッドのために動作しますが、私はTYPE行った場合:「ポスト」それは、アラート と警告ボックスをポップアップは「localhost:52348は言う: 内部サーバーエラー」最後

 




    $(document).ready(function() { 
      $("button").click(function() { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: '@Url.Action("Create", "SeatPlans", new { Area = "" })', 
        data: { seat_id: "34", seat_no: "98" }, 
        dataType: "json", 
        async: false, 
        success: function (result) { 
         $("#div1").html(result); 
        }, 

        error: function (abc) { 
        alert(abc.statusText); 
        }, 



       }); 
      }); 
     }); 




+0

あなたのjqueryコードを – Baahubali

+0

に投稿しました。私はJavaScriptコードを –

+4

に投稿しました。データに 'data:'オプションを使ってデータを渡す必要があります。 'データ{ID:1}'。しかし、あなたのajaxコールはPOSTではなく、GETです。あなたのGETメソッドにはパラメータがなくても、何をしようとしているのか、コントローラに渡したいのかは不明です。 –

答えて

1

私は、スクリプトをsollution 変更しました

 

     //jQuery.noConflict(); 
     // var $j = jQuery.noConflict(); 

     function clickevent() 
     { 
      var form = $("#frm"); 
      var token = $('input[name="__RequestVerificationToken"]', form).val(); 
       $.ajax({ 
        type: "post", 
        // headers: { "__RequestVerificationToken": token }, 
        url: '@Url.Action("Create", "SeatPlans")', 
        data: { 
         seat_id: "34", seat_no: "98" 
        }, 
        success: function (result) { 


          $("#div1").html(result); 

        } 
       }); 
      } 



<pre> 


    public ActionResult Create(String seat_id, String seat_no) 
    { 
     int id = 10; 
     SeatPlans S = new SeatPlans(); 
     S.seat_id = seat_id; 
     S.seat_no = seat_no; 
     if (ModelState.IsValid) 
     { 


      db.SEATPLAN.Add(S); 
      db.SaveChanges(); 
      // return RedirectToAction("Index"); 
     } 

     return View(S); 
    } 

怒鳴るとして作成POSTメソッドを変更怒鳴ります
関連する問題