将IEnumerable <model>传递给我的视图以显示结果

时间:2018-11-21 20:55:30

标签: c# .net asp.net-core-mvc

首先,我想指出的是,我将.NET Core与MVC结合使用。

我有一个GetMember类型的Members控制器方法(async Task <IActionResult>),该方法接收id(用户的ID)并将其发送到外部数据库(通过Filemaker API)。
作为回报,我收到一个包含我的结果的IEnumerable。 (直到一切都好,它才能正常工作。)

我的问题是我无法在我的视图中放置这些数据。
确实,我有一个表格,我希望收到的数据自动输入到我的表格中。

我的问题导致将变量results传递给模型,我找不到如何将数据从一个发送到另一个的方法。

但是我知道可以使用现有模型Members的数据,但是如果您愿意,我可以添加视图的代码。

我故意删除了应该执行此操作的代码,因为结果不正确。

你能帮我吗?

EDIT /刷新了代码,现在打开页面时,我在Chrome上收到错误500 ...知道吗?

控制器

[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 :(得分:0)

我不太了解您要尝试什么。但是我想您在从视图中获取表单数据时会遇到一些问题。为此,您需要两种操作方法;一个用于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