从选择下拉列表中检索对象
Posted
技术标签:
【中文标题】从选择下拉列表中检索对象【英文标题】:Retrieve object from select drop down list 【发布时间】:2021-12-13 10:51:37 【问题描述】:我正在尝试从这个剃须刀页面中的最后一个表单组返回一个 meetingSpace 对象:
<form method="post">
<input type="hidden" asp-for="Booking.Id" />
<div class="form-group">
<label asp-for="Booking.Name"></label>
<input asp-for="Booking.Name" class="form-control" />
<span class="text-danger" asp-validation-for="Booking.Name"></span>
</div>
<div class="form-group">
<label asp-for="Booking.Start">Start</label>
<input asp-for="Booking.Start" class="form-control" />
<span class="text-danger" asp-validation-for="Booking.Start"></span>
</div>
<div class="form-group">
<label asp-for="Booking.Duration">Duration</label>
<input asp-for="Booking.Duration" class="form-control" />
<span class="text-danger" asp-validation-for="Booking.Duration"></span>
</div>
<div class="form-group">
<label asp-for="Booking.MeetingSpace">Room</label>
<select data-value="true" data-va-required="The meeting space field is required" id="MeetingSpace.Id" name="MeetingSpace.Name">
@foreach (var meetingSpace in Model.meetingSpaces)
<option value="meetingSpace">@meetingSpace.Name</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
我不确定如何设置此选择下拉菜单以将值返回到 Booking.MeetingSpace 属性。我可以在下拉列表中看到 meetingSpace 对象列表,但是在选择一个选项后,创建/编辑的对象中的 meetingSpace 字段不会像表单中的其他属性一样返回。我也尝试过使用 Booking.MeetingSpaceId int 进行相同的操作,但在提交表单后仍未填充。
【问题讨论】:
【参考方案1】:这可能是一个绑定问题尝试像这样更改名称属性值:
<select data-value="true" data-va-required="The meeting space field is required" id="Booking.MeetingSpace.Id" name="Booking.MeetingSpace.Name">
@foreach (var meetingSpace in Model.meetingSpaces)
<option value="@meetingSpace.Id">@meetingSpace.Name</option>
</select>
选项值也应该以@开头才能被识别。
【讨论】:
您好,感谢您的帮助,我很难理解其中的一些 documentation。您是对的,在进行更改后,我注意到所选 ID 已保存在 Booking.MeetingSpace.Id 属性中。我将name="Booking.MeetingSpace.Id"
更改为name="Booking.MeetingSpaceId"
并得到了我想要的结果,谢谢。
很高兴能提供帮助。另请参阅这些文档以获取有关在 .net 核心中使用 select taghelper 的更多信息:docs.microsoft.com/en-us/aspnet/core/mvc/views/…。以上是关于从选择下拉列表中检索对象的主要内容,如果未能解决你的问题,请参考以下文章