gpt4 book ai didi

c# - .net MVC Controller 如何解析参数

转载 作者:太空狗 更新时间:2023-10-30 01:21:04 25 4
gpt4 key购买 nike

我最近发布了我的 Advanced Controller 的新版本

这基本上是一个通用 Controller (ASHX),它在 ASP.net Webforms 上的行为类似于 MVC Controller ,从某种意义上说,它接收请求并自动调用所需的内部方法,从请求查询字符串或参数中解析其参数取决于 HTTP 动词并返回结果。它做了更多,但这是我的主要初始功能。

根据请求信息创建对象和水合作用是该项目中最痛苦的部分,但最终我达到了与对 MVC Controller 执行相同请求类似的性能。

就像我说的,.net MVC Controller 实际上做同样的事情,但我从来没有设法了解如何做。

例如,如果我对 MVC Controller 执行此 AJAX 调用:

$.ajax({
type:'GET',
url: 'SomeData/List'
data:{filter: 'whatever'}
});

这将调用接收字符串过滤器属性的 Controller 方法。

但它会变得更复杂,因为我们可以调用接收复杂类型的 Controller ,具有嵌套的复杂类型和集合,并且“神奇地”在 Controller 参数中正确解析参数。

有谁知道这个管道是如何在 .net MVC 中完成的?

最佳答案

此过程称为模型绑定(bind)。有一个默认的 Model Binder,它将通过查看请求中的内容和 Controller 的期望,尝试将发布的值转换为复杂类型。

它根据约定执行此操作。显然, View 也实现了此约定,因此在将 View 和 Controller 与模型绑定(bind)器一起使用时,您不会遇到任何摩擦。

以下帖子更详细地解释了这个概念:

http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx http://odetocode.com/blogs/scott/archive/2009/05/05/iterating-on-an-asp-net-mvc-model-binder.aspx http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC.aspx

如果您在 google 上搜索“ASP.NET MVC 模型绑定(bind)器”,您会发现有关该主题的更多信息。

关于c# - .net MVC Controller 如何解析参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809514/

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