gpt4 book ai didi

c# - ASP.NET MVC 如何知道如何填充您的模型以提供 Controller 的操作?它涉及反射(reflection)吗?

转载 作者:可可西里 更新时间:2023-11-01 08:08:55 25 4
gpt4 key购买 nike

定义了一个模型

public class HomeModel {
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }

[Required]
[Display(Name = "Surname")]
public string Surname { get; set; }
}

并具有以下 Controller

public class HomeController : Controller {
[HttpPost]
public ActionResult Index(HomeModel model) {
return View(model);
}

public ActionResult Index() {

return View();
}
}

通过某种“魔法”机制 HomeModel 模型 被 ASP.NET MVC 填充了值。有谁知道吗?

从一些基本测试来看,它似乎会查看 POST 响应并尝试将响应对象名称与模型的属性相匹配。但要做到这一点,我想它必须使用反射?这不是遗传性的慢吗?

谢谢

最佳答案

是的,您正在谈论神奇的 ModelBinder

ModelBinder 负责创建模型并使用来自表单回发的值对其进行水合,并执行验证,其结果将显示在 ModelState 中。

默认实现是 DefaultModelBinder但您可以插入自己的插件。

关于c# - ASP.NET MVC 如何知道如何填充您的模型以提供 Controller 的操作?它涉及反射(reflection)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com