2012-03-23 14 views
0

私はユーザーが注文するビュー(MVC3)を持っています。ビューは、モデル項目を表示するために使用するモデルにバインドされています。このビューには2つの機能があります。まず、顧客の詳細を入力してから、ユーザーが注文したアイテムを選択します。これは、サーバーサイドに戻って送信する別のモデルを構築するために使用してコード - 私です:AJAXを使用するのが間違っていますか?

var modelItems = { 
    ModelID: [], 
    Amount: [] 
}; 

var serviceModel = { 
    Name: $.trim($('#name').val()), 
    Customernumber: $.trim($('#customernumber').val()), 
    Address1: $.trim($('#address1').val()), 
    Address2: $.trim($('#address2').val()), 
    Zipcode: $.trim($('#zipcode').val()), 
    City: $.trim($('#city').val()), 
    Country: $.trim($('#country').val()), 
    Phone: $.trim($('#phone').val()), 
    Mobile: $.trim($('#mobile').val()), 
    Email: $.trim($('#email').val()) 
}; 

$('div.modelSpan').each(function (i) { 
     var textBox = $(this).children(); 
     var value = $(textBox).val(); 

     if (value != '0' && value != '') { 
      var modelID = $(textBox).attr('name'); 
      modelItems.ModelID.push(modelID); 
      modelItems.Amount.push(value); 
     } 
    }); 

var accessory = { 
      ModelItems: modelItems, 
      ServiceModel: serviceModel 
     }; 

     $.ajax({ 
      url: '/Site/Order', //Renamed sec reasons 
      type: "POST", 
      data: JSON.stringify(accessory), 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function (ordernumber) { 
       window.location.href = "/Site/OrderInfo/" + businessAB + "/" + ordernumber; 
      }, 
      error: function() { 
       alert('error'); 
      } 
     }); 

クールなものMVC3には、私のアクセサリが自動的にAccessoriesModelと呼ばれるサーバーサイドでの私のモデルに結合することです。コールバックの成功に私は何が作成されたユーザーを表示する領収書サイトに新しいhrefを設定しています。これはすべて動作しますが、私の問題は、[httppost]を受け取り、新しいhrefを設定していないコントローラから受け取りビュー(OrderInfo)を返すようにしたいということです。これを行う方法はありますか?これは、通常のフォーム送信を使用すると簡単ですが、私のモデルの値は1つのフォームから来ていないため、複雑になります。多分私はAJAXを使うべきではないでしょうか?

+1

どのように部分ビューを生成し、ajaxを使用してコントローラから戻しますか? – cpoDesign

+0

私は部分的なビューを使用する場合は、AJAXの投稿が送信されたのと同じページに読み込まれませんか? – user228720

+0

部分的なビューを含むdivを隠してから、ajaxの成功が部分的かつ隠れたコンテンツの残りを示した後 – user228720

答えて

0

Ajaxでknockout JSを使用し、JavaScriptオブジェクトと通常のhtmlが混在したページをレンダリングできます。

関連する問題