Прежде чем пометить это как дубликаты, я уже проверил эти вопросы
Передача данных из контроллера WebApi в контроллер MVC
ASP.Net MVC Как передать данные из представления в контроллер
Я пытаюсь войти в мир asp.net WebApi после 6 месяцев работы с MVC, но все еще не знаю, когда и как правильно использовать WebApi с обычным приложением MVC. Если кто-то знает какую-либо хорошую документацию или какие-то хорошие учебники, это было бы очень признательно.
В любом случае, я пытаюсь создать приложение MVC с WebAPI, у меня есть решение, которое содержит 2 проекта "mvcApplication" и "myWebApiApplication". Я запустил решение для обоих проектов, и я протестировал запрос GET, как это, и он работал:
MVC Index Controller
public ActionResult Index()
{
IEnumerable<mvcStudentModel> empList;
HttpResponseMessage response = GlobalVariables.webApiClient.GetAsync("Students").Result;
empList = response.Content.ReadAsAsync<IEnumerable<mvcStudentModel>>().Result;
return View(empList);
}
Контроллер WebAPi
public class StudentsController : ApiController
{
private StudentsDBEntities db = new StudentsDBEntities();
// GET: api/Students
[Route("api/Studentst")]
[HttpGet]
public IQueryable<Student> Students()
{
return db.Students;
}
Затем я добавил шаблон ListView, и все работает нормально.
Теперь я не знаю, правильно ли я это делаю, но я попытался вставить нового ученика в таблицу учеников (ID, имя).
Итак, я попытался добавить в текстовое поле представления индекса 1 с помощью кнопки отправки.
@Html.BeginForm("AddStudent", "Index"){
<input type="text" name="username" placeholder="Student name" />
<button type="submit" class="btn btn-warning">
}
Когда я нажимаю кнопку подтверждения, запускается контроллер метода AddStudent:
public ActionResult isAvailable(string username)
{
// What code should I put here to pass data to WebApi
}
И давайте предположим, что я могу вызвать метод WebApi с запросом POST, чтобы добавить студента, я добавил это в свой контроллер WebApi:
[Route("api/AddNewStudent")]
[HttpPost]
public IQueryable<Student> check(string name)
{
var test = db.Students.Where(a => a.StudentName.Equals(name)).FirstOrDefault();
if (test!=null)
{
// add Student code
}
}
Но после этого я не знаю, что делать (сначала я хочу передать данные из контроллера MVC в контроллер WebApi, чтобы добавить ученика в контроллер WebApi), и я создал StudentModel для передачи данных при необходимости.
Извините за длинный вопрос и спасибо за любую помощь.