Afzaal Ahmad Zeeshan
Как уже упоминалось в решении 1, MadMyche, вы не можете просто конвертировать свои приложения в API, где сам API является отдельным способом или методом разработки приложений. API имеет так много требований, таких как отсутствие состояния, безголовость, кросс-платформенность и кросс-устройство. API-интерфейсы работают непосредственно по протоколу HTTP и не требуют браузера для отображения содержимого. Таким образом, взгляды и т. д. не будут нужны.
Передача репрезентативного состояния - Википедия[^]
Таким образом, вы будете использовать формат обмена данными, например JSON или XML, а затем возвращать данные, используя эти форматы, а затем получать доступ к ним от клиента. Так вот в чем дело, вам нужно изменить вид на модели—вы возвращаете данные вместо HTML документа Затем эти данные могут быть доступны в любом месте и проанализированы.
Пожалуйста, посмотрите эту мою статью, чтобы понять, как это может произойти, ASP.NET 5 спокойный веб-API Твара и Windows 10 родные приложения[^]
Ваш код будет изменен на следующий код,
// Change from IActionResult to the data, this will be serialized to JSON (or XML)
[HttpPost]
public Employee Create()
{
var model = new Employee();
if (id == null)
{
model.EmployeeId = _repository.GetAll().Max(Employee => Employee.EmployeeId) + 1;
}
// Return the data itself, not the View
return model;
}
// You can do the same "async" thing using API too, just return the data
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<Employee> Create(Employee employee)
{
// See below for more ways to capture, bind and validate the model values.
_context.Add(employee);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
// Return the data again
return employee;
}
Вот еще одна интересная вещь, поскольку вы используете API, ваши пользователи могут загружать данные с помощью любого метода, строки запроса, публиковать их через тело HTTP, отправлять файл, отправлять в виде форм-данных, что угодно. Вам нужно проверить данные с помощью таких методов, как
[FromBody]
, прием.
Привязка модели в ASP.NET ядро | Microsoft Docs[
^]