【问题标题】:Has IModelBinder signature changed in MVC 5?IModelBinder 签名在 MVC 5 中是否已更改?
【发布时间】:2014-12-25 03:58:50
【问题描述】:

我只是在关注一本 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 不同的参数。那么现在我们应该怎么做呢?

【问题讨论】:

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


    【解决方案1】:

    本书指的是System.Web.Mvc.IModelBinder;您的实现使用System.Web.ModelBinding.IModelBinder

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

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

    【讨论】:

    • 哦 ReSharper!停止为我选择命名空间!
    • 是的,我以前被这个抓住了。有许多类型具有多个定义(如属性),可能会非常混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多