Как вызвать функцию не API-контроллера с использованием Web API-контроллера - PullRequest
0 голосов
/ 15 мая 2019

У меня есть контроллер, и его имя «AuthController», которое наследуется «BaseController».«AuthController» имеет параметрический конструктор, а также метод «RegisterFromOutside», который используется для регистрации пользователя.Ниже код отлично работает для контроллера Non Api.

Пример кода для контроллера Non Api:

enter image description here

Теперь вопрос в том, как можноЯ использую контроллер API для вызова того же метода?и затем получить к нему доступ из моего мобильного приложения (используя те же реализации).Обратите внимание, что в проекте пока нет реализации API-вызовов.

Это когда я получаю эту ошибку.и ошибка

"Но когда я пытался получить доступ к тем же UserServices из другого контроллера приложений Web API с помощью конструктора Parametric. Он просит меня объявить конструктор без параметров. И когда я это делаю, он просто неt запустить параметрический конструктор и в ответ я получаю исключение нулевой ссылки. "

public class ValuesController : ApiController
    {
        UserServices _userServices;

        public ValuesController(
            UserServices userServices)
        {
            _userServices = userServices;
        }

        // POST api/values
        public void Post([FromBody]RegisterViewModel model)
        {
            RegisterFromOutside(model);
        }

        public void RegisterFromOutside(RegisterViewModel model)
        {
            User user = _userServices.Register(model.Username, model.Password, model.Email);
        }
    }

1 Ответ

0 голосов
/ 15 мая 2019

Вы можете добавить контроллер API в проект MVC (щелкните правой кнопкой мыши на папке «Контроллеры», выберите «Добавить»). -> Контроллер)

adding api controller

В моем проекте есть подпись метода, которая выполняет авторизацию пользователя, вы можете сделать то же самое (вы также можете попробовать сделать это в классическом контроллере без API)

[AllowAnonymous]
        [HttpPost]
        [Route("api/mobile/users/login")]
        public LoginResponseModel Login(LoginRequestModel loginRequestModel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...