【发布时间】:2019-12-29 04:28:48
【问题描述】:
我需要为放置在表格行中的每个值从模型获取一个 ID 到控制器。但是,检查结果时,AmbassadorEventId = 0。
我尝试使用@Html.HiddenFor(x => Model.Staffings[i].AmbassadorEventId) 而非@Html.HiddenFor(x => x.Staffings[i].AmbassadorEventId) 进行澄清
查看:
<form asp-action="StaffStudents" asp-controller="Admin" method="post">
<table id="staffingTable">
<thead>
<tr>
<th>Event</th>
<th>Sub Event</th>
<th>Student Name</th>
<th>Academic Area</th>
<th>Majors</th>
<th>Minors</th>
<th>Staff?</th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Staffings.Count; i++)
{
<tr>
<td>@Model.Staffings[i].Event.EventName</td>
<td>@Model.Staffings[i].SubEvent.SubEventName</td>
<td>@Model.Staffings[i].FirstName @Model.Staffings[i].LastName</td>
<td>@Model.Staffings[i].AcademicArea</td>
<td>
@foreach (var item in Model.Staffings[i].Majors)
{
item.ToString();
}
</td>
<td>
@foreach (var item in Model.Staffings[i].Minors)
{
item.ToString();
}
</td>
<td>@Html.CheckBoxFor(x => Model.Staffings[i].Staff)</td>
@Html.HiddenFor(x => x.Staffings[i].ProfileId)
@Html.HiddenFor(x => x.Staffings[i].AmbassadorEventId)
</tr>
}
</tbody>
</table>
<button type="submit" id="addStaffingsBtn" class="wdn-button wdn-button-complement" style="float:right;">Submit</button>
</form>
型号:
public class AdminStaffStudentViewModel
{
public List<Staffing> Staffings { get; set; } = new List<Staffing>();
}
public class Staffing
{
public Entity.SubEvent SubEvent { get; set; }
public Event Event { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string AcademicArea { get; set; }
public List<string> Majors { get; set; }
public List<string> Minors { get; set; }
public string ClassLevel { get; set; }
public List<AcademicYear> AcademicHistory { get; set; }
public bool Staff { get; set; }
public int ProfileId { get; internal set; }
public int AmbassadorEventId { get; internal set; }
控制器:
[HttpPost]
[Authorize(Roles = "Admin")]
public IActionResult StaffStudents(AdminStaffStudentViewModel model)
{
_adminManager.StaffStudentsToEvents(model.Staffings);
return RedirectToAction(nameof(StaffStudents));
}
我应该能够在发布时将视图中的值返回给控制器。
【问题讨论】:
标签: asp.net entity-framework asp.net-core razor