2017-07-17 25 views
-1

私は何が間違っているのか、何が変更されたのか分かりません。Netcore、JSONパラメータalways null

[HttpPost] 
public JsonResult Test1(DepartmentDTO departmentDto, int testId) 
{ 
    return Json(departmentDto); 
} 
public partial class DepartmentDTO 
{ 
    public int DepartmentID { get; set; } 
    public string Description{ get; set; } 
} 

JavascriptをPOST: 私はnetcoreにMVCコントローラに1.1

MVCコントローラをJSONパラメータを送信しようとしている

var req = { 
    method: 'POST', 
    url: "/Department/Test1", 
    headers: { 
     'Content-Type': 'application/json;charset=utf-8' 
    }, 
    data: JSON.stringify({ 
     "departmentDto": { "DepartmentID": 1, "Description": "TEST" }, 
     "testId": 1 
    }), 
}; 
var promise = $http(req).then(function successCallback(response) { 
    if (response.data.departmentID == 0) { 
     alert("Wrong") 
    } 
    return response.data 
}, function errorCallback(response) { 
    return { success: false, message: response.data }; 
}); 

すべてのパラメータは常にnullです:departmentDto &テストID 感謝あなたのお手伝いをします。

+0

問題はなんですか? – Pointy

+0

すべてのパラメータは常にnullです。 –

+0

* what *へのすべてのパラメータ? – Pointy

答えて

1

[FromBody]は1回のみ使用できます。ボディストリームは前方のみです。

提案:

[Route("Department")] 
public class DepartmentController : Controller { 
    [HttpPost("Test1/{testId:int}")] //Matches POST Department/Test1/1 
    public IActionResult Test1(int testId, [FromBody]DepartmentDTO departmentDto) { 
     return Json(departmentDto); 
    } 
} 

とリクエスト

var req = { 
    method: 'POST', 
    url: "/Department/Test1/1", 
    headers: { 
     'Content-Type': 'application/json;charset=utf-8' 
    }, 
    data: JSON.stringify({ "DepartmentID": 1, "Description": "TEST" }), 
}; 

を変更すること、またはクライアントから文字列に変換されたものと一致する新しいオブジェクトモデルを作成し、単一のアクションパラメータとして[FromBody]でタグ付けされたことを持っています