次のコードがあります。なぜインライン変数として配列やリストを直接作ることができないのですか?以下のようなクラス内の配列やリストでうまく動作します。C#ASP.NET Web API 2は、AngularJSのインパラメータとして整数の配列を受け取ります
要求ペイロード:
{"ids":[1,2,4]}
角度:
send: {
method: 'POST',
url: controllerPath + '/send',
isArray: true
}
agreementResource.send({ ids: vm.agreementIds }).$promise.then(function (data) {
});
のC#:
//Works
[HttpPost]
[Route("send")]
[Authorize(Roles = "Admin")]
public IHttpActionResult Send(AgreementIdsViewModel ids)
{
foreach (var id in ids.Ids)
{
}
}
//Does not work
[HttpPost]
[Route("send")]
[Authorize(Roles = "Admin")]
public IHttpActionResult Send(int[] ids)
{
foreach (var id in ids)
{
}
}
public class AgreementIdsViewModel
{
public int[] Ids { get; set; }
}
私はので、私はそれが可能であるべきだと思う、それはGETリクエストを介して行うことができます知っています。
GetSend([FromUri] int[] ids)
し、要求を送信します。
/Send?ids=1&ids=2&ids=3
([FromBody] INT [] IDS) ' – Fabio
は私が@Fabioに同意し、また、あなたのコントローラのメソッド内のブレークポイントを設定し、Request.Form.AllKeys –
のように、この中にすべてのものを通過することができ送る'公共IHttpActionResultを使用しますこれは残念ながらうまくいきませんでした。 – Ogglas