2016-10-15 12 views
-1

私はしようとしています: 1.クライアントからサーバー にJSONオブジェクトを送信します。 3.元のオブジェクトからいくつかのフィールドをエンコードし、それをne JSONオブジェクトとしてクライアント側に送信します。Ajax(クライアント)とCSHTML(サーバー)を使用してクライアントからサーバーにJSONオブジェクトを送信します。

これが私の現在のコードです:それは働いていない

@{ 
    //Recieve and convert JSON Array 
    var reader = new StreamReader(Request.InputStream); 
    var jsonA = reader.ReadToEnd(); 
    var objArray= Json.Decode(jsonA); 

    // Create a JSON Array 
    var ServerResponse = new { 
    TextToSend = new string[1], 
    }; 

    ServerResponse.TextToSend[0] = objArray.marks[0]; 

    var json = Html.Raw(Json.Encode(ServerResponse)); 
    Response.Clear(); 
    Response.ContentType = "application/json; charset=utf-8"; 
    Response.Write(json); 
    Response.End(); 
} 

クライアント(jQueryの-アヤックス):

<script> 
$(document).ready(function() { 
    var obj = {}; 
    obj['marks']= ["hi"]; //array 
    $.getJSON("ServerTest.cshtml", JSON.stringify(obj) , function (result) { 
     $.each(result, function (i, field) { 
      if (i == "TextToSend") { 
       $('#inner_body').append('<div class="abc">' + field + '</div>'); 
      } 
     }); 
    }); 
}); 
</script> 

サーバー(CSHTML)。私は、サーバー側のコードは、JSONオブジェクトを正しく読み取っていないと仮定します。

答えて

1

サーバーからクライアントでデータを受信するためのHTTP GETを実行しています。サーバーにデータを送信するためのPOSTを実行する必要があります。

サーバー側では、クライアントからデータを受信するためにコントローラにアクションを記述する必要があります。そのため、アクションにHttpPost属性を設定する必要があります。

私はあなたがその方法を尋ねることを知っていますが、その質問に対する答えを見つけるための最良の方法は、私がここで大きな記事を書くことではなく、たとえば、コードファーストでMVCアプリケーションを作成するためのチュートリアルを行い、チュートリアルで作成したモデル用のコントローラを作成し、作成、編集、削除のアクションを見てみましょうあなたのために作成されます。

クライアントフォームは、HTMLフォームメカニズムによってすべて隠されているため、AJAXを目に見える形で使用することはありません。 AJAXのクライアントサイドコードに関する限り、type(4番目)のパラメータに注意して、$ postのjQueryドキュメントを見ることができます。

Razorは、MVCのV(ビュー)部分用であり、クライアントからのデータ受信用ではありません。

関連する問題