Передача IEnumerable <Model>в мой вид, чтобы показать результат - PullRequest
0 голосов
/ 21 ноября 2018

Во-первых, я хотел бы отметить, что я использую .NET Core с MVC.

У меня есть метод (GetMember) типа async Task <IActionResult> моего контроллера Members, который получаетid (идентификатор пользователя) и отправляет его во внешнюю базу данных (через Filemaker API).
В ответ я получаю IEnumerable, который содержит мой результат.(До этого все было в порядке, все работает отлично).

Моя проблема в том, что я не могу поставить эти данные в свое представление.
Действительно, у меня есть форма, и я хотел бы, чтобы полученные данные былиавтоматически вводится в мою форму.

Моя проблема приводит к передаче моей переменной results в мою модель, я не могу найти способ отправки данных из одной в другую.

Однако я знаю, как использоватьданные моей существующей модели Members, но, если хотите, я могу добавить код представления.

Я намеренно удалил фрагмент кода, который должен выполнять эту операцию, потому что результат был неправильным.

Не могли бы вы мне помочь?

РЕДАКТИРОВАТЬ / с обновленным кодом, теперь я получаю ошибку 500 в Chrome при открытии страницы ... любая идея?

Контроллер

[HttpGet]
    public async Task<IActionResult> GetMember(int? id)
    {
        if(id == null)
        {
            return NotFound();
        }

        try
        {
        FileMakerRestClient client = new FileMakerRestClient("https://fms171.hostmy.solutions", "helloJAK", "jak", "legeneral!");
        var toFind = new Models.Members { Zkp_WEB = id };
        var results = await client.FindAsync(toFind);

            bool isEmpty = !results.Any();
            if (isEmpty)
            {
                return NotFound();
            }

        return View(results);
        }
        catch
        {
            return BadRequest();
        }
    }

Просмотр

<script type="text/javascript">

    $(document).ready(function () {
        GetMember();

    }); 

        function GetMember() {
            $.ajax({
                url: "https://localhost:44338/Members/GetMember/" + 28
            });
    }

</script>

1 Ответ

0 голосов
/ 22 ноября 2018

Я не совсем понимаю, что вы пытаетесь.Но я думаю, у вас есть проблемы с получением данных формы из представления.Вам нужны два метода действия для этого;один для метода GET и другой для метода POST.В контроллере:

public async Task<IActionResult> Method()
{ 
   return View();
}

[HttpPost]
public async Task<IActionResult> Method(Model model)
{ 
   if (ModelState.IsValid)
   {
     // work with the model
   } else return View(model)
}

В представлении:

@model Model

<form asp-action="ActionName" method="post"> 
   <div> 
     <label asp-for = "Name"></label> 
     <input asp-for = "Name" /> 
     <span asp-validation-for = "Name"></span> 
   </div> 
   <div> 
     <input type = "submit" value = "Save" /> 
   </div> 
 </form>

Вы должны посмотреть этот урок.https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/?view=aspnetcore-2.1

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