在ASP.NET MVC的另一个模型视图中包含一个模型的控制器函数和视图?

时间:2013-07-17 17:45:01

标签: asp.net asp.net-mvc

我有Model ABModel A包含Model B必须拥有的联系人(电话号码,电子邮件等)的信息。我有一个Model A正在访问的电话,电子邮件和地址的模型,并通过您可以在此处看到的“主模型页面”使用:

    public class master
{
    public A A { get; set; }
    public phones phones { get; set; }
    public emails emails { get; set; }
    public addresses addresses { get; set; }
}

由于Model A成功使用此主模型(它在创建新phone时创建新的emailaddressModel A有没有办法可以将模型A推入模型B的创建页面中,这样我就不必重做我为模型A工作所做的代码了?换句话说,我可以在模型B的创建视图中使用模型A的创建视图吗?我希望这是有道理的。

修改

    public class A 
    { 
      public int id { get; set;}
      public string name { get; set; }
      public string company { get; set; }
    }

    public class B 
    {
      public string userName
      public string website
    }

正如你所看到的,B与A不同,所以它必须有自己的创建字段,但是,它需要A拥有的所有东西以及A的控制器获得的所有东西(电话,地址) ,电子邮件)使用主模型。我希望能够解决问题。

1 个答案:

答案 0 :(得分:0)

我想您希望B继承A

执行此操作会导致B同时拥有AB

的属性
public class A 
{ 
  public int id { get; set;}
  public string name { get; set; }
  public string company { get; set; }
  public string SayHello(){ return string.Format("Hello {0}"); }
}

public class B : A
{
  public string userName
  public string website
}
然后,您可以执行类似

的操作
var b = new B() { name = "me", company="my company", userName = "me@mycompany.com" };
var greeting = b.SayHello();  // "Hello me"