谈谈ASP.NET CORE 中的数据绑定

数据(模型)绑定

前言:在我以前的文章中谈过.NET CORE 中的模型绑定,文章连接:https://blog.csdn.net/weixin_41372626/article/details/104575685

这篇文章主要从模型角度去说明如何将前端传来的数据绑定到控制器的模型上去构建该数据库实体,这里从更直接从方法的角度去解读,算是对前面文章的补充与扩展。

框架提供了一种默认的数据绑定方式,可以把用户请求的数据绑定到方法的参数上。比如用得最多可能就是通过表单传递数据、查询字符串传递参数。

如果同一个数据在多个数据源里都出现了,(比如同时出现在查询字符串?username=zhangsan、Form表单<input type=”text” username=”lisi” />中,框架会采用默认的优先级别获取数据),但是我又想取特定数据源的数据,怎么办?

需要打上特性:打在方法参数前面 。.NET framewrok下的MVC默认不支持这些特性的,这是.NET CORE 的功能

特性

数据源

FromHeaderAttribute

Headers(标头)

FromRouteAttribute

路由数据

FromBodyAttribute

请求体

FromFormAttribute

表单数据

FromQueryAttribute

查询字符串

FromServicesAttribute

服务注册

 

例子:

控制器

[Controller]

    public class Test : Controller

    {

        public IActionResult SayHello()

        {

            return View();

        }

        public IActionResult ProcSayHello(string username)

        {

            return Content("hello" + username);

        }

}

这里后端username既可以来自于查询字符串的username又可以来自于表单的username这是默认情况下后端username会接收到来自于From表单中输入的。

 

前端视图

<html>

<head>

    <meta name="viewport" content="width=device-width" />

    <title>SayHello</title>

</head>

<body>

    <form method="post" action="/Test/ProcSayHello?username=zhsan">

        姓名<input type="text" value="" name="username" /> <input type="submit" value="提交" />

    </form>

</body>

</html>

 

现在需要改为来自于查询字符串的。只需要在控制器的Action方法中加上一个特性。

public IActionResult ProcSayHello([FromQuery] string username)

        {

            return Content("hello" + username);

        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值