C# 执行进入同一视图的不同查询

C# 执行进入同一视图的不同查询,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我希望通过单个控制器操作方法将不同查询的内容传递到视图 目前,我有控制员,我在同一张表上发出两个查询,第一个是8 std的学生,第二个是9 std的学生: public class StudentController : Controller { private MyDatabase db = new MyDatabase(); public ActionResult Index() { var query = db.table1.where(t =&g

我希望通过单个控制器操作方法将不同查询的内容传递到视图

目前,我有控制员,我在同一张表上发出两个查询,第一个是8 std的学生,第二个是9 std的学生:

public class StudentController : Controller
{
    private MyDatabase db = new MyDatabase();

    public ActionResult Index()
    {
        var query = db.table1.where(t => t.Class_ID == 8);
        var query2 = db.table1.where(t => t.Class_ID == 9);
        return View(query1, query2));
    }
}
然后我想在Student controller的索引视图上显示query1和query2数据。
请帮帮我。感谢所有回复

您可以使用视图模型:

public class MyViewModel
{
    public Model1 Model1 { get; set; }
    public Model2 Model2 { get; set; }
}
@model MyViewModel
然后生成控制器操作,并将此视图模型传递给视图:

var model1 = (from r in db.content...)
var model2 = (from r in db.content...)
var viewModel = new ViewModel();
viewModel.Model1 = model1;
viewModel.Model2 = model2;
return View(viewModel);
var viewModels= new ViewModels<Model1, Model2>() { Model1 = model1, Model2 = model2 };
return View(viewModels);
现在,视图将被强类型化为视图模型:

public class MyViewModel
{
    public Model1 Model1 { get; set; }
    public Model2 Model2 { get; set; }
}
@model MyViewModel
您将能够访问其属性:

@Model.Model1.SomePropertyOfTheFirstModel
@Model.Model2.SomePropertyOfTheSecondModel

可以使用视图模型:

public class MyViewModel
{
    public Model1 Model1 { get; set; }
    public Model2 Model2 { get; set; }
}
@model MyViewModel
然后生成控制器操作,并将此视图模型传递给视图:

var model1 = (from r in db.content...)
var model2 = (from r in db.content...)
var viewModel = new ViewModel();
viewModel.Model1 = model1;
viewModel.Model2 = model2;
return View(viewModel);
var viewModels= new ViewModels<Model1, Model2>() { Model1 = model1, Model2 = model2 };
return View(viewModels);
现在,视图将被强类型化为视图模型:

public class MyViewModel
{
    public Model1 Model1 { get; set; }
    public Model2 Model2 { get; set; }
}
@model MyViewModel
您将能够访问其属性:

@Model.Model1.SomePropertyOfTheFirstModel
@Model.Model2.SomePropertyOfTheSecondModel

创建一个新的
ViewModel
类,该类将包含该视图所需的数据,按数据填充该
ViewModel
对象,并将其传递给视图

范例

public class CustomViewModel
{
  //member of type model1
  //member of type model2
}

创建一个新的
ViewModel
类,该类将包含该视图所需的数据,按数据填充该
ViewModel
对象,并将其传递给视图

范例

public class CustomViewModel
{
  //member of type model1
  //member of type model2
}

创建用两个属性命名
ViewModels
的类,如下所示:

public class ViewModels<T1, T2> {
    public T1 Model1 { get; set; }
    public T2 Model2 { get; set; }
}
现在在视图上使用:

@model ViewModels<Model1, Model2>
@Model.Model1.PropertyOfModel1
@Model.Model2.PropertyOfModel2
@model视图模型
@Model.Model1.PropertyOfModel1
@Model.Model2.PropertyOfModel2

创建一个类,该类使用两个属性命名
ViewModels
,如下所示:

public class ViewModels<T1, T2> {
    public T1 Model1 { get; set; }
    public T2 Model2 { get; set; }
}
现在在视图上使用:

@model ViewModels<Model1, Model2>
@Model.Model1.PropertyOfModel1
@Model.Model2.PropertyOfModel2
@model视图模型
@Model.Model1.PropertyOfModel1
@Model.Model2.PropertyOfModel2

可能重复的可能重复的可能重复的如果他想在不同的模型上使用它怎么办?然后您将编写另一个视图模型。无论如何,每个视图都应该有自己的视图模型。在任何情况下,将
Model1
Model2
作为属性名都是不好的。您应该使用专门的视图模型。如果他想将其用于不同的模型,该怎么办?然后您将编写另一个视图模型。无论如何,每个视图都应该有自己的视图模型。在任何情况下,将
Model1
Model2
作为属性名都是不好的。您应该使用专门的视图模型。