asp.net-mvc - 如何使用 asp.net core 3 从 SelectList 中选择一个 Id?
问题描述
我正在遍历一个列表并填充一个表,其中最后一列有一个编辑按钮来编辑该 Id 特定请求。
现在,无论我单击什么按钮,它总是将我带到列表中第一个 Id 的编辑页面,而且 URL 中的每个 Id 都像这样列出。/EditRequest?SelectedId=127&SelectedId=128 为什么将 SelectedId 设置为列表中的所有值?以及如何只传递所选的一个 ID?
这是我的模型
public class MyRequestsViewModel
{
public MyRequestsViewModel()
{
this.MyRequests = new List<SelectListItem>();
}
public List<SelectListItem> MyRequests;
public int SelectedId { get; set; }
}
我正在遍历 MyRequests 并希望将 SelectedId 发送到控制器
<form method="get" asp-controller="Home" asp-action="EditRequest">
<table id="SortRequestsTable" class="table table-striped">
<thead>
<tr>
<th>SortID</th>
<th>SortCriteria</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.MyRequests)
{
<tr>
<td>@item.Value</td>
<td>@item.Text</td>
<td>
<input asp-for="SelectedId" type="hidden" value="@item.Value" />
<button>@item.Value<span class="sap-icon"></span></button>
</td>
</tr>
}
</tbody>
</table>
</form>
我的控制器一直说 SelectedId 是 0
public IActionResult EditRequest(MyRequestsViewModel requests)
我得到了它的工作。但我不想在按钮中显示 Id 值。
<input asp-for="SelectedId" type="submit" value="@item.Value" /><span class="sap-icon icon-16"></span>
我也尝试过使用 asp-route-SelectedId 标签助手,但我不完全确定如何实现它。
解决方案
尝试下面的代码以实现从索引页面编辑。
<a asp-action="Edit" asp-route-id="@item.ID">Edit</a> |
和控制器接受请求
// GET: Tickets/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var ticket = await _context.Tickets.FindAsync(id);
if (ticket == null)
{
return NotFound();
}
return View(ticket);
}
推荐阅读
- android - osmdroid - 标记的自定义视图
- java - MultipleBagFetchException - 如果我们只有一个集合怎么办
- python - 为什么剪枝中的参数会在 tensorflow 的 tfmot 中增加
- .net - 如何在 Visual Studio 2019 上解锁 NLog.config
- c++ - C++17 新功能:错误 C4996:'getenv':此函数或变量可能不安全。考虑改用 _dupenv_s
- javascript - 除非先进入根域,否则 React Router 无法呈现确切的路径
- postgresql - 将 json 条目转换为表记录的最佳方法
- awk - 查找匹配的代码块并在倒数第二行添加或替换内容
- pdf - 从 PPTX 创建可访问的 PDF - 对某些句子不起作用 - 为什么?
- c++ - Quectel EC25 发送短信并收到+CMS ERROR 305