我有一个Web api控制器和一个mvc控制器。我从mvc控制器调用web api控制器。我希望api控制器将整数变量传递给mvc控制器。
这是我的MVC控制器
[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 Redirect("Index"); ;
}
}
ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
return View(student);
}
这是我的api控制器(sid是我需要传递给上述MVC控制器的整数变量)
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();
int sid = ctx.Students.Max(item => item.StudentID);
}
return Ok();
}
提前致谢
答案 0 :(得分:0)
只需返回OK(sid);来自web api。
并在MVC控制器中读取它,如下所示。
if (result.IsSuccessStatusCode)
{
int yourStudentIDFromAPI = await result.Content.ReadAsAsync<int>();
}