Передача данных из выбранного значения из выпадающего списка Vue. JS в POST-контроллер C# MVC - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть форма, которая в основном встроена в ASP. NET MVC. Меня попросили добавить новое поле и другие функции в форму. Я отказался от идеи использования синтаксиса бритвы ASP. NET для добавления этих функций, после некоторой борьбы с ним, я решил go с использованием Vue. JS для создания этих функций.

Проблема теперь в том, что, хотя я встроил необходимую функцию во внешний интерфейс, я изо всех сил пытался найти способ передать выбранный элемент раскрывающегося списка используемому контроллеру MVC. Обратите внимание, что контроллер уже существует следующим образом.

 [Route("request-withdrawal"), HttpGet]
        public ActionResult RequestWithdrawal(string customerId = null, string coreSystem = null, string portfolioCode = null)
        {
            var currentUser = GetCurrentUser();
            var accounts = _accountService.GetAllByUser(currentUser.Id);
            ViewBag.DropdownList = WithdrawalRequest.GetWithdrawalList();
            var request = new WithdrawalRequest();
            return View(request);
        }

Мне не нужно вносить никаких изменений в код выше. Когда пользователь хочет отправить форму, мне нужно передать значение, выбранное в раскрывающемся списке с питанием Vue. JS, и отправить его на контроллер MVC POST для обработки. Этот метод выглядит следующим образом.

 [Route("request-withdrawal"), HttpPost]
        public ActionResult RequestWithdrawal(WithdrawalRequest request)
        {
            bool isError = !ModelState.IsValid;

            if (!isError)
            {
                try
                {
                    var resp = fluentApiClient.NewPostRequest("investnow", "save-withdrawal-request")
                        .AddBody(request.GetPayload()).GetResponse();

                    if (resp.Success)
                    {
                        ViewBag.Message = resp.Message;
                        isError = false;
                        return RedirectToAction(nameof(SuccessWithdrawal), new { resp.Message });
                    }
                    else
                    {
                        ModelState.AddModelError("", resp.Message);
                        isError = true;
                    }
                }
                catch (ApiException e)
                {
                    isError = true;
                    ModelState.AddModelError("", e);
                }
            }

            var currentUser = GetCurrentUser();
            ViewBag.DropdownList = WithdrawalRequest.GetWithdrawalList();
            return View(request);
        }

Мои мысли 1. Я не уверен, что могу использовать параметр URL-запроса, так как я не вызываю метод POST с Vue. 2. Я думаю, что, возможно, скрытое поле будет работать как-то, но я не уверен, как именно.

Также обратите внимание, что раскрывающийся список с поддержкой Vue. JS получает свои данные от конечной точки API.

Пожалуйста, помогите. Пожалуйста, посоветуйте, как мне это сделать.

Спасибо

Что я хочу сделать, это передать выбранное значение из раскрывающегося списка с питанием Vue. JS вышеупомянутому действию контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...