ASP.NET MVC表格行编辑按钮传值至编辑页的方法咨询
ASP.NET MVC 狗狗列表编辑按钮优化方案
你的思路核心是对的——通过传递狗狗ID到控制器方法来打开对应编辑页面,但当前用form+隐藏输入的实现方式可以更简洁,也更符合HTTP语义规范。
更简便的实现方式:用<a>标签伪装成按钮
打开编辑页面属于获取资源的操作,应该用GET请求,而非POST。直接使用ASP.NET MVC的标签助手或Url辅助方法,就能一行代码搞定:
方式1:使用标签助手(推荐)
<td> <a asp-controller="Home" asp-action="EditDog" asp-route-id="@dog.identity" class="btn btn-primary">Edit</a> </td>
方式2:使用Url.Action方法
<td> <a href="@Url.Action("EditDog", "Home", new { id = dog.identity })" class="btn btn-primary">Edit</a> </td>
原实现方式的可优化点
- HTTP方法不符合语义:POST请求应该用于提交修改数据(比如编辑完成后保存),而打开编辑页面是获取页面资源,用GET更合理。
- 冗余代码:
enctype="multipart/form-data"完全没必要(你没有上传文件需求),隐藏输入框也属于多余的代码。
对应控制器方法示例
确保你的HomeController里有对应的GET类型方法:
public IActionResult EditDog(int id) { // 这里替换成你的业务逻辑:根据ID获取狗狗信息 var dog = _yourDogRepository.GetById(id); if (dog == null) { return NotFound(); } return View(dog); }
内容的提问来源于stack exchange,提问作者Oran Kenyon
相关产品推荐
相关产品推荐

