2016-07-09 12 views
0

私は問題に苦しんでおり、解決する方法が見つけられません。ここで mvc postメソッドが動作しない

は私のクラスの学生である:

public class Student 
{ 
    public int ID { get; set; } 
    public string Nume { get; set; } 
    public string Prenume { get; set; } 
    public int Nota { get; set; } 
    public bool Status { get; set; } 
} 

そしてここで、コントローラからのPOSTメソッドである:私のようなJSONを送信しようとした

[HttpPost] 
public IHttpActionResult Post([FromBody] Student student) 
{ 
    if (student == null) return BadRequest(); 
    studenti.Add(student); 
    return CreatedAtRoute("StudentApi", new { ID = student.ID }, student); 
} 

{ "ID": 6, "Nume": "Test", "Prenume": "TestP", "Nota": 10, "Status": true } 

それを返す...毎回nullになり、要素がリストに追加されることはありません...

+0

正常に...その後の詳細を与えるコードをフォーマットする方法を参照してくださいhttp://stackoverflow.com/editing-helpをお読みください*方法*あなたをJSONを投稿する –

+0

私はPostman、Content-Tyを使って投稿していますpe:application/jsonとimは上記のモデルを送信します。 { "ID":6、 "ヌメ": "テスト"、 "Prenume": "TESTP"、 "注意":10、 "ステータス":真 }チェックで – Florin

+0

入れデバッグポイントは、あなたが可能ですこの方法を打つ?チェックしていない場合は、経路設定を確認してください。 –

答えて

0

それはあなたがPOSTアクションを呼び出す方法を私たちに示していないため、問題が何であるかを言うのは難しいですが、あなたがこのようになりますStudentControllerと呼ばれるウェブAPIコントローラを持っているとしましょう:

public class StudentController : ApiController 
{ 
    [HttpPost] 
    public IHttpActionResult Post([FromBody] Student student) 
    { 
     if (student == null) return BadRequest(); 
     //studenti.Add(student); 
     return CreatedAtRoute("StudentApi", new { ID = student.ID }, student); 
    } 
} 

投稿しますjQueryのは、あなたがこれを行うことができます使用してポストアクションにStudent

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $("#btnAddStudent").click(function() { 
      var student = { 
       "ID": 6, 
       "Nume": "Test", 
       "Prenume": "TestP", 
       "Nota": 10, 
       "Status": true 
      } 
      $.ajax({ 
       type: "POST", 
       url: "/api/Student", 
       data: student, 
       success: function (data) { 
        alert("New student created."); 
       }, 
       error: function (error) { 
        alert("Called failed"); 
       } 
      }); 
     }); 
    }); 
</script> 
<input type="button" id="btnAddStudent" value="Add Student" /> 
+0

'dataType:" json "'は必須ではないだけでなく、私はそれをお勧めしませんが、リクエストではなくレスポンス用です。 [あなたは 'contentType'を意味しました](http://api.jquery.com/jquery.ajax/)? –

+0

ありがとう、サー!だから...データ型を使用して正しいですか、私はcontentTypeを使用する必要がありますか? – Florin

+0

dataTypeを完全に削除します。私は私の側でそれを試して、コールはまだ動作します。そして、私の記事があなたを助けた –

関連する問題