1

我有一个非常笼统的问题。

使用 ASP.NET MVC 进行开发时。它提供了一种利用 C# 与客户端对象(如查询字符串)进行交互的好方法。

我想知道 ASP.NET MVC 框架如何将 GET 请求中发送的查询字符串或 POST 请求中的表单数据转换为强类型 C# 类?是否有任何特定的 HttpHandler 或 HttpModules ?或者他们是否使用任何预定义的动作过滤器?

我想在基于 WCF 的 RESTFull 服务中实现类似的功能。我相信我需要为此目的使用拦截器。

请提供一些建议。

提前致谢。

4

2 回答 2

3

您指的是ASP.NET MVC 模型绑定。 这实际上是框架的一个完全独立的部分,而不是ActionFiltersHttpModules。它通过检查“值提供者”(请求中的信息源,如表单数据、查询字符串甚至路由)来工作,并尝试按名称将它们与控制器操作中复杂类型的属性相匹配。

正如 Kenneth 提到的,您可以查看CodePlex上的源代码,但如果您希望使用 RESTful 架构模式编写服务,您可以开始使用 MVC4 beta 中的Web API功能,它还支持模型绑定(因此您不会必须重新发明它!)

还值得一提的是,Web API 是为 WCF 开发的,但现在是ASP.NET MVC的一部分,这是有道理的,因为 ASP.NET MVC 和 Web API 一样,都是主要围绕 HTTP 构建的。

于 2012-05-24T03:34:43.630 回答
0

我对 wcf 可扩展性模型不太熟悉,但在 mvc3 方面,所有源代码都在那里。您可以确切地看到模型绑定是如何实现的。只需下载源代码,它的内容相当丰富。

http://aspnet.codeplex.com/releases/view/58781

于 2012-05-23T20:11:32.127 回答