gpt4 book ai didi

c# - 在 MVC 中为数据模型创建接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 19:59:01 26 4
gpt4 key购买 nike

我有一个 MVC 项目,它将通过 HTTP“发布”动词接受数据。我热衷于遵循最佳实践,并想就如何最好地设置我的模型提出一个简短的问题。

通常在处理发布的数据时,我会设计我的 Controller 以使用具体模型。然而,当我想使用 IoC 时,我想确定我是否应该像以前一样继续,或者我是否应该创建接口(interface)。

我的直觉是,我应该在整个 Web 应用程序中为我的所有模型和类使用接口(interface),以有效地实现 IoC。我只是想确认我走在正确的道路上! :o)

例子:

My concrete model

public class PhoneBook : IPhoneBook
{
public string Firstname {get; set;}
public string LastName {get; set;}
public string PhoneNumber {get; set;}
}


My interface

public interface IPhoneBook
{
string Firstname {get;set;}
string Lastname {get;set;}
string Phonenumber {get;set;}
}

My controller

//Accept posted data from web form
public void Post(IPhoneBook passInDetails)

{
...
}

提前致谢。

最佳答案

Inversion of Control (IoC)Dependency Injection (DI)并不意味着您需要为所有模型和类使用接口(interface)。

对于 "view" models ,具体类很好,因为

  1. 它们是 Controller 的输入(也可能是 View 的输出)
  2. 它们实际上是 DTO
  3. 它们应该简单并且有独立的目的
  4. 具有数据注释属性的模型验证在定义它们的类型上进行,因此它们应该继续在模型绑定(bind)中使用的具体类型上进行。

因此,我会像您一样继续为“ View ”模型使用简单的类。另一方面,您的领域/核心/业务层模型(MVC 中的M)将与您的领域一样简单或复杂你在做模特。

关于c# - 在 MVC 中为数据模型创建接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30458288/

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