데이터를 게시 할 테이블 2 개 (학생 및 부모)가 있습니다. MVC 컨트롤러와 API 컨트롤러가 있습니다. mvc 컨트롤러에서 createStudent (StudentViewModel student) 동작 메서드를 API 컨트롤러의 PostStudent (StudentViewModel 학생)로, PostParent (ParentViewModel p)의 createParent (ParentViewModel p)로 각각 라우팅하려고합니다. 그러나 API 컨트롤러에서 두 가지 POST 메서드를 사용하면 모호한 결과를 초래합니다.MVC 컨트롤러 동작 메서드를 Web Api 컨트롤러 (여러 포스트 메서드가있는 Web API 컨트롤러)의 각 게시 메서드에 연결
mvc 컨트롤러를 통해 동일한 API 컨트롤러에서 두 가지 POST 메서드를 사용하는 방법을 찾을 수 없습니다.
이것은 MVC 컨트롤러에 내 코드입니다 (StudentController 이름)
public ActionResult createStudent()
{
return View();
}
[System.Web.Mvc.HttpPost]
public ActionResult createStudent(StudentViewModel student)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:39673/api/student");
var postTask = client.PostAsJsonAsync<StudentViewModel>("student", student);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
return RedirectToAction("Index");
}
}
ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
return View(student);
}
public ActionResult createparent()
{
return View();
}
[System.Web.Mvc.HttpPost]
public ActionResult createparent(ParentViewModel p)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:39673/api/Student");
//HTTP POST
var postTask = client.PostAsJsonAsync<ParentViewModel>("parent", p);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
return View();
}
}
ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
return View(p);
}
이 기본으로 내 (StudentController 이름) API 컨트롤러
public class StudentController : ApiController
{
//POST Student
public IHttpActionResult PostStudent(StudentViewModel student)
{
if (!ModelState.IsValid)
return BadRequest("Invalid data.");
using (var ctx = new MyEntities())
{
ctx.Students.Add(new Student()
{
Name = student.Name,
MobileNO = student.MobileNO
});
ctx.SaveChanges();
}
return Ok();
}
//POST Parent
public IHttpActionResult PostParent(ParentViewModel p)
{
if (!ModelState.IsValid)
return BadRequest("Invalid data.");
using (var ctx = new MyEntities())
{
ctx.Parents.Add(new Parent()
{
StudentID=p.StudentID,
ParentName = p.ParentName,
});
ctx.SaveChanges();
}
return Ok();
}
}
감사
감사합니다. 나는 이미 첫 번째 접근 방식으로 작업하고있다. 그러나 저는 두 번째 접근 방식을 시도하고 싶습니다. –