2017-11-26 2 views
-2

Ich habe einen Web-api-Controller und einen Mvc-Controller. Ich rufe den Web-API-Controller vom mvc-Controller an. Ich möchte, dass der API-Controller eine Integer-Variable an den MVC-Controller übergibt.ein Integer-Variable von api Controller Mvc-Controller Passing

Hier ist meine MVC-Controller

[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); 
      } 

Hier mein api Controller ist (sid ist die Integer-Variable, die ich brauche, über MVC-Controller die weitergegeben werden)

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(); 
      } 

Vielen dank im Voraus

Antwort

0

einfach zurückkehren OK (sid); von der Web-API.

Und es in dem MVC-Controller, wie unten lesen.

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

ich versuchte es. aber ich weiß nicht, wie sid in mvc controller abrufen. –

+0

Bitte versuchen Sie die überarbeitete Ans oben .. Eine weitere Beobachtung, warum Sie die Web-API aus C# -Code aufrufen müssen? Können wir es nicht vom Client-Browser aus aufrufen? und behandeln die Antwort .. –

Verwandte Themen