#entity-framework #asp.net-web-api #model-view-controller #postman #webapi
#entity-framework #asp.net-web-api #модель-представление-контроллер #почтальон #webapi
Вопрос:
Может кто-нибудь, пожалуйста, помочь мне передать несколько моделей в качестве параметра для содержимого запроса в ВЕБ-API?
У меня есть 2 разных модели Student и Employee
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string Branch { get; set; }
}
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public string Department { get; set; }
}
Я создал API и хочу передать обе эти модели в качестве параметров в моем методе действий InsertTestAPI.
[HttpPost]
[Route("TestAPI")]
public HttpResponseMessage InsertTestAPI(Student modelStudent, Employee modelEmployee)
{
// other logical operations
}
Когда я передаю эти модели как JSON в теле запроса, я получаю следующую ошибку от Postman.
{
"$id": "1",
"Message": "An error has occurred.",
"ExceptionMessage": "Can't bind multiple parameters ('modelStudent' and 'modelEmployee') to the request's content.",
"ExceptionType": "System.InvalidOperationException",
"StackTrace": " at System.Web.Http.Controllers.HttpActionBinding.ExecuteBindingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)rn at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()rn--- End of stack trace from previous location where exception was thrown ---rn at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()rn at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)rn at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"
}
Кто-нибудь может мне помочь?
Ответ №1:
public class StudentEmployeModel
{
public Student Students{get;set;}
public Employee Employees{get;set;}
}
Создайте класс StudentEmpendedModel таким образом.
public HttpResponseMessage InsertTestAPI(StudentEmployeModel model)
{// other logical operations }
запрос таким образом
{ "students": { "studentId":"0", "studentName":"Mehmet", "branch":"software" } ,
"employees":
{"employeeId ":0,"employeeName":"Test","department":"IT"} }
Таким образом, вы можете отправлять запросы в формате Json
Комментарии:
1. Привет, Мехмет, спасибо за ваш ценный ответ, не могли бы вы сообщить мне, как я могу установить значение в модели Students и Employees, когда я передаю StudentEmployeModel как JSON в теле запроса?
2. Я написал ответ в комментарии
Ответ №2:
После этого вы можете вызвать класс Empolyee в классе student .затем вы можете вызвать вызов нескольких моделей в api
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string Branch { get; set; }
public Employee EmpData {get;set;}
}
Комментарии:
1. Спасибо, Дивьянши, за ваш ценный ответ, ваше решение также работает, но я могу принять ответ для всех, поэтому я также поддержал ваш ответ. Спасибо.