在MVC 5中IModelBinder签名是否已更改?

时间:2014-12-24 19:50:52

标签: asp.net-mvc asp.net-mvc-5

我正在关注一本MVC 5书,它正在为其购物车创建一个自定义模型绑定器。 他在书中的内容是:

“public class CartModelBinder : IModelBinder {
        private const string sessionKey = "Cart";

        public object BindModel(ControllerContext controllerContext,
            ModelBindingContext bindingContext) {”

Excerpt From: Adam Freeman. “Pro ASP.NET MVC 5.” iBooks. 

当我开始输入并创建我的课程时,它自动创建了这个:

public class CartModelBinder: IModelBinder
    {
        private const string sessionKey = "Cart";
        public bool BindModel(ModelBindingExecutionContext modelBindingExecutionContext, ModelBindingContext bindingContext)
        {

那个返回一个对象并接受不同于为我创建的IDE的参数。那么现在我们该怎么办?

1 个答案:

答案 0 :(得分:7)

这本书指的是System.Web.Mvc.IModelBinder;您的实施正在使用System.Web.ModelBinding.IModelBinder

实际上,您可能会遇到3种不同的IModelBinder接口。第三个定义包含在System.Web.Http中,用于Web API。

This answer涵盖了为什么。简而言之,它们是用于不同目的的不同实现(MVC,Web窗体和Web API)。