通过两个模型来查看

Ari*_*MAZ 15 c# asp.net-mvc model asp.net-mvc-4

我是mvc的新手,并尝试用它做一个小项目来学习它.我有一个页面应该显示特定日期的货币和天气.所以我应该通过货币模型和天气模型.我已经完成了传递货币模型并且工作正常,但我不知道如何通过第二个模型.大多数教程都展示了如何只传递一个模型.

你们能不知道该怎么做.

这是我当前的控制器动作,它发送货币模型

public ActionResult Index(int year,int month,int day)
    {
        var model = from r in _db.Currencies
                    where r.date == new DateTime(year,month,day)
                    select r;

        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

Kir*_*nov 38

您可以创建包含两个模型的特殊视图模型:

public class CurrencyAndWeatherViewModel
{
   public IEnumerable<Currency> Currencies{get;set;}
   public Weather CurrentWeather {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

并传递给视图.

public ActionResult Index(int year,int month,int day)
{
    var currencies = from r in _db.Currencies
                where r.date == new DateTime(year,month,day)
                select r;
    var weather = ...

    var model = new CurrencyAndWeatherViewModel {Currencies = currencies.ToArray(), CurrentWeather = weather};

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)


nes*_*unc 6

您必须创建一个新模型,该模型必须包含要将其传递给视图的整个对象.您应该创建一个继承基本模型(类,对象)的模型(类,对象).

和其他建议你可以通过View ["model1"]和View ["model2"]发送对象(模型),或者只是一个包含对象的数组来传递它并将它们转换到我不建议的视图中.