将整数变量从api控制器传递给Mvc Controller

时间:2017-11-26 17:28:56

标签: c# asp.net-web-api2

我有一个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();
            }

提前致谢

1 个答案:

答案 0 :(得分:0)

只需返回OK(sid);来自web api。

并在MVC控制器中读取它,如下所示。

if (result.IsSuccessStatusCode)
{
    int yourStudentIDFromAPI = await result.Content.ReadAsAsync<int>();
}