【问题标题】:How to pass more than 1 models如何通过超过 1 个模型
【发布时间】:2013-03-28 20:20:10
【问题描述】:

http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller

我的问题是:如何发送多个@model IEnumerable<MvcMovie.Models.Movie>

例如 - 我想从 Controler 发送到 View:db.Movies.ToList()db.Letters.ToList()。怎么寄?
以及如何在我的视图中分开:IEnumerable with Movies 和 IEnumerable with Letters?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    我的问题是:如何发送超过 1 个 @model IEnumerable?

    通过使用视图模型:

    public class MyViewModel
    {
        public FooBarModel TheFooBar { get; set; }
        public IEnumerable<Movie> Movies { get; set; }
    }
    

    然后让您的控制器将此视图模型返回给视图:

    public ActionResult SomeAction()
    {
        var model = new MyViewModel();
        model.Movies = ...
        model.TheFooBar = ...
        return View(model);
    }
    

    最后你的视图将被强类型化到视图模型中:

    @model MyViewModel
    

    您将能够访问其属性。

    【讨论】:

    • 哇!谢谢 :) 以及如何在这里工作@foreach (var item in Model) 只处理信件或电影?
    • 像这样:@foreach (var movie in Model.Movies).
    【解决方案2】:

    最简单的解决方案是创建一个包含MoviesLetters 列表的Wrapper 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多