ここでは、私はAJAXリクエストから投稿したいが、コントローラのアクションを打つポストアクションメソッドは助けてください。Web Api Post Failed Asp.net Mvc
[Route("api/agency/questionnairePagesubmit")]
[HttpPost]
public HttpResponseMessage questionnairesubmit(System.Web.Mvc.FormCollection form)//List<AttributeValueTB> QuestionnaireList, HttpPostedFileBase fileUpload
{
//some code here
}
アヤックス
$.ajax({
type: "POST",
url: path,
contentType: 'application/json',
processData: false,
dataType: "json",
data: data,
success: function (result) {
if (result.sucess == "save") {
alert('Your form has been saved.');
}
else if (result.sucess == "Submit") {
alert('Your form has been submitted.');
window.location.href = result.Url;
}
},
error: function (result) {
alert('Oh no ');
}
});
WebAPIコントローラの場合は、アクションのパラメータに '[FromBody]'属性を適用して、リクエスト本体からパラメータをマップする必要があります。それがFormCollectionの考えにマップできるかどうかはわかりません。投稿モデルを定義してみてください。 –
あなたがajax.urlに割り当てる '経路'を明示してください – OlegI
FormCollectionを取る代わりに、コントローラでJObjectパラメータを取る必要があります。 – Koderzzzz