Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC3 asp中使用多个模型_C#_Asp.net Mvc_Asp.net Mvc 3_Razor - Fatal编程技术网

C# 如何在MVC3 asp中使用多个模型

C# 如何在MVC3 asp中使用多个模型,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,如果我有一个MVC3 ASP.net页面,其中包含一个模型“iEnumerable”——该模型直接链接到实体框架模型——现在我还想包括MVC3生成的默认用户管理模型,那么我如何同时使用这两个模型 我假设我必须传入一个集合,或者创建一个名为“blah”的模型,该模型有一个字段“carsforHire”,该字段最多与iEnumerable结合,但不确定从何处开始 如果您有任何想法,我们将不胜感激。如果您愿意,您可以使用EF的导航属性。即 public class carForHire() { in

如果我有一个MVC3 ASP.net页面,其中包含一个模型“
iEnumerable
”——该模型直接链接到实体框架模型——现在我还想包括MVC3生成的默认用户管理模型,那么我如何同时使用这两个模型

我假设我必须传入一个集合,或者创建一个名为“
blah
”的模型,该模型有一个字段“carsforHire”,该字段最多与
iEnumerable
结合,但不确定从何处开始


如果您有任何想法,我们将不胜感激。如果您愿意,您可以使用EF的导航属性。

public class carForHire()
{
 int property1{get; set;}
 .
 .
 .
//Navigationla property
public virtual blah blah { get; set; }
}

在您的页面/视图中,您可以像


如果愿意,您可以使用EF的导航属性。

public class carForHire()
{
 int property1{get; set;}
 .
 .
 .
//Navigationla property
public virtual blah blah { get; set; }
}

在您的页面/视图中,您可以像


你已经提到了解决方案;创建包含所有必需数据的视图模型类。例如:

public class SomeViewModel
{ 
   public User CurrentUser { get; set; }
   public IEnumerable<mymodel.CarsForHire> Cars { get; set; }
}
public class CarsViewModel
{
    public IEnumerable<mymodel.CarsForHire> CarsForHire { get; set; }

    public UserModel User { get; set; }
}
公共类SomeViewModel
{ 
公共用户CurrentUser{get;set;}
公共IEnumerable汽车{get;set;}
}

在控制器中构造该模型并将其传递给视图。不要忘记更新视图顶部的类型声明。

您已经提到了解决方案;创建包含所有必需数据的视图模型类。例如:

public class SomeViewModel
{ 
   public User CurrentUser { get; set; }
   public IEnumerable<mymodel.CarsForHire> Cars { get; set; }
}
public class CarsViewModel
{
    public IEnumerable<mymodel.CarsForHire> CarsForHire { get; set; }

    public UserModel User { get; set; }
}
公共类SomeViewModel
{ 
公共用户CurrentUser{get;set;}
公共IEnumerable汽车{get;set;}
}

在控制器中构造该模型并将其传递给视图。不要忘记更新视图顶部的类型声明。

我通常做的是创建一个ViewModel类。例如:

public class SomeViewModel
{ 
   public User CurrentUser { get; set; }
   public IEnumerable<mymodel.CarsForHire> Cars { get; set; }
}
public class CarsViewModel
{
    public IEnumerable<mymodel.CarsForHire> CarsForHire { get; set; }

    public UserModel User { get; set; }
}
公共类CarsViewModel
{
公共IEnumerable CarsForHire{get;set;}
公共用户模型用户{get;set;}
}

然后用
CarsViewModel
而不是
IEnumerable
创建视图我通常做的是创建一个ViewModel类。例如:

public class SomeViewModel
{ 
   public User CurrentUser { get; set; }
   public IEnumerable<mymodel.CarsForHire> Cars { get; set; }
}
public class CarsViewModel
{
    public IEnumerable<mymodel.CarsForHire> CarsForHire { get; set; }

    public UserModel User { get; set; }
}
公共类CarsViewModel
{
公共IEnumerable CarsForHire{get;set;}
公共用户模型用户{get;set;}
}

然后用
CarsViewModel
创建视图,而不是
IEnumerable

啊,太棒了-我想那样会更难。啊,太棒了-我想那样会更难。