とthis answerのようなものを利用して、Invoke-RestMethod
を使用していくつかの変数とファイルのリストをコントローラにポストすることを試みています。しかし、AFAICT私は正しくpowershellのビットを適応させたが、MVCコントローラはそれを好まない。MVCコントローラがInvoke-RestMethodでポストされたデータを受け取りません
ここにレプロがあります。新鮮な、新しいMVC 5アプリケーションでは、私は、ホームコントローラにこのメソッドを追加しました:
[HttpPost]
public ActionResult Upload(string description, HttpPostedFileBase[] files)
{
if (string.IsNullOrWhiteSpace(description)) return Content("Description is required");
if (files == null || !files.Any()) return Content("At least one file required");
return Content("Dummy success.");
}
私はこのようにそれに話をしてみてください:前述のリミックスです
$baseUri = "http://localhost:62441"
$body = @{
"description" = "Test upload."
"files" = Get-Content("MyStuff.dll") -Raw
}
Invoke-RestMethod `
-Method Post `
-Uri "$baseUri/home/upload" `
-Body $body `
-ContentType "multipart/form-data"
# Outputs "Description is required"
(その他様々な回答)。しかし、私がスクリプトを実行すると、MVC側が空のdescription
と空のファイルリストを取得します。
これを引き起こしているMVCアクションがありますか?このコードを調整するにはどうすればいいですか(好ましくはpowershellビット)。
PS。私はthis answerのボディをカスタムビルドする方法を説明していますが、それは避けることが大好きです。最初に述べた回答から、実際には可能であると思われます。