【发布时间】:2021-05-23 23:17:35
【问题描述】:
我有一个模型列表,我可以在 foreach 中调用以显示在选择/选项中,但是当我尝试将特定值发送回我的控制器以让它在终端中打印时,我得到以下信息:
LeagueProject.Models.ViewModel+Participant
我知道我传回的值是有效的,因为它在我的选项中显示在“id number:”之后。
//my cshtml:
@model List<ViewModel.Participant>;
<form asp-action="PostNewBasketballPlayer2" asp-controller="Dashboard" method="POST">
<div class="form-group">
<select name="ParticipantId">
@{
if(Model != null)
{
foreach(ViewModel.Participant i in Model)
{
<option value="@i.ParticipantId">
@i.ParticipantFirstName @i.ParticipantLastName id number: @i.ParticipantId
</option>
}
}
}
</select>
</div>
<button class="btn btn-outline-info mt-5" type="submit">Sign up</button>
//my controller:
[HttpPost]
[Route("/Dashboard/postNewBasketballPlayer")]
public IActionResult PostNewBasketballPlayer2(ViewModel.Participant newParticipant)
{
Console.WriteLine(newParticipant);
return RedirectToAction("Dashboard","Dashboard");
}
我尝试了什么:
我更改了值以查看是否可以得到不同的结果,但我从终端得到了相同的响应
示例:
<option value="12">
我还尝试将传递给控制器的内容更改为 int 和字符串
public IActionResult PostNewBasketballPlayer2(int newParticipant)
当我将它更改为 int 时,我在终端中为我选择的任何选项返回 0,即使没有一个 id 是零。
public IActionResult PostNewBasketballPlayer2(string newParticipant)
当我将其更改为字符串时,我什么也得不到。
我还尝试制作一个完全独立的 Participant 模型,因为 ViewModel.Participant 是一个包含 Participant 的包装模型。
public IActionResult PostNewBasketballPlayer2(Participant newParticipant)
终端打印的内容:
LeagueProject.Models.Participant
不过,为了代码的一致性,我想继续使用包装器模型。这只是我进行的一个测试,看看我是否能得到任何不同的结果。
【问题讨论】:
-
你能发布参与者课程吗?
标签: c# asp.net asp.net-mvc asp.net-core asp.net-core-mvc