【ASP.NET Core】MVC 控制器的模型绑定(宏观篇)

本文介绍了ASP.NET Core中MVC控制器的模型绑定原理,通过实例展示了如何处理HTTP请求中的数据,包括form-data和JSON格式。讨论了ApiControllerAttribute的影响,以及如何处理API调用的数据绑定和路由规则。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
欢迎来到老周的水文演播中心。

咱们都知道,MVC的控制器也可以用来实现 Web API 的(它们原本就是一个玩意儿),区别嘛也就是一个有 View 而另一个没有 View(严格上讲,还不能谈区别,只能说功能范围吧)。于是,在依赖注入的服务容器中,我们可以这样添加功能:

var builder = WebApplication.CreateBuilder(args);
builder.Services.**AddControllers()**; //无 View
builder.Services.**AddControllersWithViews**(); //有 View

如果你的控制器有用到视图的时候,就调用第二个的方法。它们的核心服务一样。


当客户端历尽千辛万苦,跨越数不清的跃点,把请求提交到服务器后,MVC 运行时会分析请求的内容,从中还原出我们代码所需要的对象,通常是 Action 方法的参数。

要把客户端提交的数据填充到咱们所需要的对象中,得用到模型绑定。

我们先别管这概念抽象不抽象,举个例子,假设某控制器是有视图的,返回了一个页面,页面上有 form 元素(表单),可以让用户填写个人信息,然后提交(POST)给服务器,完成报名。

    <form asp-action="PostData" asp-controller="Main">
        <div class="line">
            <div class="lhd">
                <label for="name">姓名:label>
 div>
 <div class="rctl">
 <input type="text" name="name" id="name" />
 div>
 div>
 <div class="line">
 <div class="lhd">
 <label for="age">年龄:label>
 div>
 <div class="rctl">
 <input type="number" name="age" id="age" max="120" min="10" />
 div>
 div>
 <div class="line">
 <div class="lhd">
 <label for="phone">手机号码:label>
 div>
 <div class="rctl">
 <input type="tel" name="phone" id="phone" />
 div>
 div>
 <div class="line">
 <div class="lhd">
 <label for="desc">简介:label>
 div>
 <div class="rctl">
 <input name="description" id ="desc" />
 div>
 div>
 <div class="line">
 <button type="submit">提交button>
 div>
 form>

假设表示”会员“信息的是个叫 Member 的类。

    public class Member
 {
 public int ID { get; set; }

 public string? Name
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值