c# - ASP.NET Core:模态不会将值传递给控制器方法
问题描述
我的索引包含一个表格,其中显示了我创建的所有问题(调查)。但我希望能够使用模式编辑问题。因此,我在 foreach 循环中创建了以下模式:
@foreach (var item in Model.Questions)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Question1)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReplyOptions)
</td>
<td>
@Html.DisplayFor(modelItem => item.Group)
</td>
<td>
@if (item.CategoryId != null)
{
@Html.DisplayFor(modelItem => item.Category.Name)
}
else
{
<i><font color="red">Nicht zugewiesen</font></i>
}
</td>
<td>
<!-- Button trigger modal -->
<button type="button" class="btn btn-sm" data-toggle="modal" data-target="#@item.Id">
Bearbeiten
</button>
<!-- Modal -->
<div class="modal fade" id="@item.Id" tabindex="-1" role="dialog" aria-labelledby="xxx" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h2 class="modal-title" id="xxx">Frage bearbeiten</h2>
</div>
<div class="modal-body">
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="@item.Id" />
<div class="form-group">
<label asp-for="@item.CategoryId" class="control-label"></label>
<select asp-for="@item.CategoryId" class="form-control" asp-items="ViewBag.CategoryId"></select>
<span asp-validation-for="@item.CategoryId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.Question1" class="control-label"></label>
<input asp-for="@item.Question1" class="form-control" />
<span asp-validation-for="@item.Question1" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.ReplyOptions" class="control-label"></label>
<input asp-for="@item.ReplyOptions" class="form-control" />
<span asp-validation-for="@item.ReplyOptions" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.Group" class="control-label"></label>
<input asp-for="@item.Group" class="form-control" />
<span asp-validation-for="@item.Group" class="text-danger"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
</tr>
}
但我有以下问题:当我想编辑问题并单击保存时,控制器中的编辑方法没有获取值。该方法如下所示:
我必须做些什么来确保传递这些值?
解决方案
我必须做些什么来确保传递这些值?
只需将名称属性添加到表单中的每个控件:
<div class="modal-body">
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="@item.Id" name="Id" />
<div class="form-group">
<label asp-for="@item.CategoryId" class="control-label"></label>
<select asp-for="@item.CategoryId" class="form-control" asp-items="ViewBag.CategoryId" name="CategoryId"></select>
<span asp-validation-for="@item.CategoryId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.Question1" class="control-label"></label>
<input asp-for="@item.Question1" class="form-control" name="Question1" />
<span asp-validation-for="@item.Question1" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.ReplyOptions" class="control-label"></label>
<input asp-for="@item.ReplyOptions" class="form-control" name="ReplyOptions" />
<span asp-validation-for="@item.ReplyOptions" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@item.Group" class="control-label"></label>
<input asp-for="@item.Group" class="form-control" name="Group" />
<span asp-validation-for="@item.Group" class="text-danger"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
推荐阅读
- java - 返回语句后执行异步调用 Reactive Core + Spring Boot
- google-cloud-platform - 如何在 gcloud 实例上打开端口?
- kotlin - Kotlin 中 null 安全性的最佳实践
- hive - 如何在 impala 中实现非规范化数据
- android - 当通知到达 Android 时,如何使用 react-native-firebase 唤醒设备?
- python - 从中序和前序遍历构造二叉树的空间复杂度
- firebase - 在 Firestore 规则中使用 resource.data
- ruby-on-rails - 两个活动记录对象的分页
- c++ - C ++将列表元素指针转换为列表迭代器
- javascript - 在 Blogdown 中嵌入 Flourish 可视化