Я пытаюсь получить что-то похожее на this answer и 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, в котором объясняется, как настраивать Body, но это довольно много работы, которую я бы хотел избежать, и, учитывая ответы, упомянутые в начале, я подозреваю, что это действительно возможно?