首先,我想指出的是,我将.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>
答案 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