2012-05-11 9 views
0

単一ページのWebアプリケーションを開発する際に問題があります。mvc3のhttppostアクションにjsonデータを送信した後にリダイレクトを表示しないようにする方法

$('#user_dialog .create').click(function() { 
          var user = getInfoUser(); 
          $.ajax({ 
           url: '@Url.Action("Create", "User")', 
           async: false, 
           type: 'POST', 
           data: JSON.stringify(user), 
           datatype: 'json', 
           contentType: 'application/json;charset=utf-8', 
           success: function (data) { 
            $('#user_dialog').dialog("close"); 
           } 
          }); 
         }); 
要求に

[HttpPost] 
    public String Create(UserAddViewModel model) 
     { 
      try 
      { 
       // TODO: Add insert logic here 

       return JsonConvert.SerializeObject(true); 
      } 
      catch 
      { 
       return JsonConvert.SerializeObject(false); 
      } 
     } 

そして、私のjQuery 成功コールバック関数を処理するコントローラでマイHTTPPOSTアクションが起動されます

とデータ「真:jQueryのHTTPPOSTアクションにJSONを送る

'が届きます。今

しかし、問題はこの後で、ページがビューページ

を作成/ /ユーザーにリダイレクトされます、私はそれがページにリダイレクトしたくない、私はちょうど私でUIを処理したいですjQueryコード。

これはHTTPPOSTアクションなのでしょうか?

実際の理由とその修正方法は何ですか?

答えて

4

おそらく、あなたがクリックしているものはURLです。あなたのクリックイベントにoccuringから(URLをロード)デフォルトのイベントを防止していない

$('#user_dialog .create').click(function (event) { 
    event.preventDefault(); 
    //rest of function 

クリックイベントが終了するたびに

、それはそれはだ場合、フォームを提出、リンクの場合はURLをロードするデフォルトのイベント(送信ボタン、チェックボックスの切り替えなど)が次に発生します。これを防ぐには、 preventDefault()を使用するか、falseを返すかのいずれかを明示的に行う必要があります。詳細については、 http://api.jquery.com/event.preventDefault/を参照してください。

+0

EXACTLY !!!申し訳ありませんが、preventDefaultは何をしますか?それはフォームを2回提出するためですか?それはpreventDefaultが送信するデフォルトのフォームをブロックするためですか? – Timeless

+1

http://api.jquery.com/event.preventDefault/ – Tassadaque

関連する問題