Как передать файл и объект json от почтальона в webapi ядра asp.net - PullRequest
0 голосов
/ 14 марта 2019

У меня есть метод записи с подписью ниже,

[HttpPost] public ActionResult SavePriorAuthorization (MainPriorAuthorization priorAuthorization, файл IFormFile)

Теперь я хочу передать объектвместе с файлом от почтальона.Я попробовал следующую опцию, которая не работает.

enter image description here

Это дает ошибку, System.ArgumentNullException: значение не может быть нулевым.Имя параметра: заголовок

Тип заголовка: multipart / form-data

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Попробуйте изменить настройки ключа в модели MainPriorAuthorization, вы можете напрямую задать имя свойства модели в качестве ключа в Почтальоне.

Ниже приведен пример кода, который я протестировал и работал хорошо:

Гость Модель

 public class Guest
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Добавить атрибут [FromForm] к параметру в действии

[HttpPost]
    public void SaveGuest([FromForm]Guest guest,IFormFile file)
    {  }

Скриншот Почтальона enter image description here

1 голос
/ 14 марта 2019

Обычно я создаю ViewModel, подобный этому:

public class MainPriorAuthorizationViewModel
{   
    public IFormFile File { get; set; }
    public string TestName { get; set; }
}

Затем создайте действие с атрибутом [FromForm], чтобы он знал, откуда он должен отображаться:

[HttpPost]
public void Post([FromForm]MainPriorAuthorizationViewModel priorAuthorization)
{
   //do logic
}

Тогда у моего почтальона это выглядит так:

enter image description here

Надеюсь, это поможет

...