2016-07-09 105 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方法:

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

我試圖發送一個JSON,如:

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

並返回它...每當我變得空,沒有元素被添加到列表中...

+0

請仔細閱讀http://stackoverflow.com/editing-help看看如何格式化代碼正確...然後給更多細節*如何*您發佈了JSON –

+0

我使用Postman發佈它,Content-Ty pe:application/json和im發送上面提到的模型。 { 「ID」:6, 「Nume」: 「測試」, 「Prenume」: 「TestP」, 「諾塔」:10, 「狀態」:真 }在檢查 – Florin

+0

認沽調試點你能打這個方法?如果不檢查你的路線配置。 –

回答

0

這很難說是什麼問題,因爲你沒有向我們展示瞭如何調用後行動,但讓我們假設你有一個名爲StudentController一個Web 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); 
    } 
} 

要發佈Student到使用jQuery你可以做到這一點後動作:

<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。我在我身邊試了一下,這個電話仍然有效。請記住如果我的帖子幫助了你,回覆標記爲已回答 –