2016-03-31 17 views
0

私はajax投稿要求を使用したいが、私のリクエストはGetリクエストを使用するときにのみ機能する。AjaxリクエストPost Params

Get Requestを使用すると、モデルが正しく入力されます。ポストリクエストで私のモデルはnullです。

だから、この作品:コントローラ側で

self.ClearRegimeFromUntil = function() { 
    var model = { clearFrom: kendo.format("{0:dd/MM/yyyy hh:mm:ss tt}", self.clearFrom()), clearUntil: kendo.format("{0:dd/MM/yyyy hh:mm:ss tt}", self.clearUntil()), userId: self.UserID() }; 
    console.log(model); 
    $.ajax({ 
     type: "GET", 
     url: rootUrl + "api/CalendarDays/ClearRegimeFromUntil", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: model, 
     success: function (response) { 
      console.log(response); 

     } 
    }); 
}; 

を:

[System.Web.Http.HttpGet] 
    [System.Web.Http.Route(@"api/CalendarDays/ClearRegimeFromUntil")] 
    public async Task<IHttpActionResult> ClearRegimeFromUntil([FromUri] DeleteFromModel model) 
    { 

     //await _userCalendarDayRepository.DeleteFutureUserCalendarDays(model.UserId,DateTime.Parse(model.ClearFrom)); 
     return Ok(true); 
    } 

しかし、これは動作しません:コントローラ側で

self.ClearRegimeFromUntil = function() { 
    var model = { clearFrom: kendo.format("{0:dd/MM/yyyy hh:mm:ss tt}", self.clearFrom()), clearUntil: kendo.format("{0:dd/MM/yyyy hh:mm:ss tt}", self.clearUntil()), userId: self.UserID() }; 
    console.log(model); 
    $.ajax({ 
     type: "POST", 
     url: rootUrl + "api/CalendarDays/ClearRegimeFromUntil", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: model, 
     success: function (response) { 
      console.log(response); 

     } 
    }); 
}; 

を:

[System.Web.Http.HttpPost] 
    [System.Web.Http.Route(@"api/CalendarDays/ClearRegimeFromUntil")] 
    public async Task<IHttpActionResult> ClearRegimeFromUntil([FromUri] DeleteFromModel model) 
    { 

     //await _userCalendarDayRepository.DeleteFutureUserCalendarDays(model.UserId,DateTime.Parse(model.ClearFrom)); 
     return Ok(true); 
    } 

マイモデル:

public class DeleteFromModel 
{ 
    public string UserId { get; set; } 
    public string ClearFrom { get; set; } 
    public string ClearUntil { get; set; } 

} 

ヘッダとレスポンス(よりよいそれらを表示する方法がないアイデア): http://pastebin.com/AM6ScEsz

+0

あなたはJsonをサーバーに投稿していません。 'data:JSON.stringify(model)'を試してみてください。リクエストがコントローラメソッドに到達したかどうかを確認するには、コントローラメソッドにブレークポイントを設定します。 – Dandy

+0

これは何も変更されませんでした。リクエストとモデルは正しく送信されません。どうもありがとう。 – Timvr01

答えて

1

[FromUri]を削除すると問題は解決します。

[System.Web.Http.HttpPost] 
[System.Web.Http.Route(@"api/CalendarDays/ClearRegimeFromUntil")] 
public async Task<IHttpActionResult> ClearRegimeFromUntil(DeleteFromModel model) 
{ 

    //await _userCalendarDayRepository.DeleteFutureUserCalendarDays(model.UserId,DateTime.Parse(model.ClearFrom)); 
    return Ok(true); 
} 
0

チェックあなたのHTMLフォームがPOST

<form method="post"> 
... 
</form> 

である場合は、送信することができます私たちのネットワークヘッダーとajaxリクエストの応答?

+0

私はフォームで動作しません、私はヘッダーと応答を追加しました – Timvr01

関連する問題