You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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>

原实现方式的可优化点

  1. HTTP方法不符合语义:POST请求应该用于提交修改数据(比如编辑完成后保存),而打开编辑页面是获取页面资源,用GET更合理。
  2. 冗余代码: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:45:43