导读:本期聚焦于小伙伴创作的《ASP.NET Core视图如何通过href链接向控制器传递数据》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《ASP.NET Core视图如何通过href链接向控制器传递数据》有用,将其分享出去将是对创作者最好的鼓励。

在ASP.NET Core的MVC开发架构中,视图向控制器传递数据是前后端交互的基础场景之一,通过href链接传递数据是最常用的方式,适用于页面跳转时附带简单参数的需求。

ASP.NET Core视图如何通过href链接向控制器传递数据

基础QueryString传参方式

QueryString是href链接传参最直观的形式,参数以?开头,多个参数用&连接,控制器方法通过同名的形参直接接收参数值。

视图中的href链接定义

在Razor视图中,可以直接拼接参数到链接地址后,示例如下:

<a href="/Home/Detail?id=1001&name=测试商品">查看商品详情</a>
<!-- 也可以使用ASP.NET Core的标签助手生成链接,避免硬编码路由 -->
<a asp-controller="Home" asp-action="Detail" asp-route-id="1001" asp-route-name="测试商品">查看商品详情</a>

控制器方法接收参数

控制器中对应的方法只需要定义和链接参数同名的形参,框架会自动完成参数绑定:

using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    // 方法形参名称和QueryString的参数名一致即可接收
    public IActionResult Detail(int id, string name)
    {
        ViewBag.GoodsId = id;
        ViewBag.GoodsName = name;
        return View();
    }
}

路由参数绑定传参

如果提前在路由配置中定义了参数占位符,也可以把参数作为路由的一部分传递,这种方式链接结构更简洁,适合RESTful风格的接口。

路由配置

Program.cs中配置对应的路由规则,示例如下:

app.MapControllerRoute(
    name: "goodsDetail",
    pattern: "Home/Detail/{id}/{name}",
    defaults: new { controller = "Home", action = "Detail" }
);

视图和控制器实现

视图中的href链接只需要按照路由格式拼接参数即可:

<a href="/Home/Detail/1001/测试商品">查看商品详情</a>

控制器方法的接收逻辑和之前一致,框架会自动从路由中匹配对应的参数值:

public IActionResult Detail(int id, string name)
{
    // 逻辑处理和之前相同
    return View();
}

传递复杂参数的处理

如果需要传递多个参数或者复杂类型的数据,不建议把所有参数都拼接到href链接中,可以通过结合临时存储或者编码的方式处理。如果是少量额外参数,也可以继续拼接,控制器可以用对象接收,示例如下:

// 定义参数对应的实体类
public class GoodsQuery
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

// 控制器方法可以直接接收实体对象,框架会自动绑定QueryString中的对应参数
public IActionResult Detail(GoodsQuery query)
{
    // query.Id query.Name query.Price 都可以直接获取
    return View();
}

注意事项

  • 如果参数中包含中文、空格等特殊字符,链接会自动进行URL编码,控制器接收时会自动解码,不需要额外处理。
  • 使用标签助手生成链接时,如果参数值是变量,可以直接写在asp-route-后面跟上参数名的位置,例如asp-route-id="@goodsId"
  • 如果传递的参数涉及敏感信息,不建议使用href链接传参,因为参数会显示在地址栏中,可以选择表单提交或者加密处理。
  • 当参数类型不匹配时,比如链接传递的是字符串类型的id,控制器形参定义的是int,会返回400错误,需要提前做好参数校验。

ASP.NET_Corehref链接传参视图控制器交互MVC路由配置QueryString参数修改时间:2026-06-03 02:51:05

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。