-2

我正在一个网站上工作,该网站有两种不同的客户支持可能性。在这两种情况下,他都需要提交一个包含一些必填字段的小表格。

我使用一个非常基本的模型实现了其中一个,其中包含必要的属性,如姓名、电子邮件和其他一些属性,用户在其中输入他/她的数据,如果所有字段都有效,他将被重定向到祝贺他的屏幕成功提交表格。

第二个需要与第一个几乎相同的客户输入,除了一个字段未包括在内,还有一些其他字段客户必须填写才能获得第二种类型的支持。

我想知道为两个视图使用相同的模型是否是一个好主意,尽管两者都不会使用所有属性,因为创建两个具有一半相同属性的不同模型对我来说似乎是一种浪费。

4

2 回答 2

5

为您的模型使用继承:

假设输入 1 需要属性A和。输入 2需要和。BCBCD

创建两个类:

 public abstract class MyThingyBase
 {
      public int B { get; set; }
      public int C { get; set; }
 }

 public class Input1 : MyThingyBase 
 {
      public int A { get; set; }
 }

 public class Input2 : MyThingyBase 
 {
      public int D { get; set; }
 }

这样,两个类都具有它们需要的所有属性,而无需重复代码。您甚至可以共享处理代码B并将C其放置在与MyThingyBase该类一起使用的东西中。

于 2013-07-25T12:39:55.753 回答
2

您可以这样做,但最好的做法是创建一个模型,其中包含两个表单都将提交的所有属性,然后创建第二个模型,该模型将扩展第一个模型并且更具体。

于 2013-07-25T12:38:39.483 回答