加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – MVC 3传递实体作为接口

发布时间:2020-12-16 03:37:34 所属栏目:asp.Net 来源:网络整理
导读:我目前正在使用Ninject作为我的DI工作的MVC 3项目,业务对象存储在一个单独的程序集中.我遇到了控制器参数的问题,当回发CRUD操作时,我收到错误“无法创建接口的实例”.我知道你不能创建一个接口的实例,但似乎我可以解决的唯一方法是使用自定义模型绑定器并通
我目前正在使用Ninject作为我的DI工作的MVC 3项目,业务对象存储在一个单独的程序集中.我遇到了控制器参数的问题,当回发CRUD操作时,我收到错误“无法创建接口的实例”.我知道你不能创建一个接口的实例,但似乎我可以解决的唯一方法是使用自定义模型绑定器并通过FormCollection.这看起来非常混乱,我想尽可能多地保留项目中特定类型的代码 – 因此在任何地方接口和Ninject到DI的混凝土.自定义模型绑定不仅看起来很乱 – 我不会丢失我的DataAnnotations吗?

一些代码来描述我的内容:

public ActionResult Create()
{
    // I'm thinking of using a factory pattern for this part
    var objectToCreate = new ConcereteType();
    return (objectToEdit);
}

[HttpPost]
public ActionResult Create(IRecord record)
{
    // check model and pass to repository
    if (ModelState.IsValue)
    {
        _repository.Create(record);
        return View();
    }

    return View(record);
}

有没有人遇到过这个?你是怎么克服它的?

谢谢!

解决方法

传递给控制器??操作的数据只是值的持有者.它们应该没有任何逻辑,所以没有什么可以解耦.您可以使用具体类型(例如Record)代替接口(IRecord)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读