加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – MVC 4如何从控制器正确传递数据以查看

发布时间:2020-12-15 06:51:37 所属栏目:百科 来源:网络整理
导读:我目前拥有一个带有LINQ语句的控制器,我将数据传递给我.我试图找到一种更有效和更好的编码方法来做到这一点. 我的家庭控制器声明如下. Var Melt Furnace1 = (from item in db.tbl_dppITHr where item.ProductionHour = StartShift item.ProductionHour = End
我目前拥有一个带有LINQ语句的控制器,我将数据传递给我.我试图找到一种更有效和更好的编码方法来做到这一点.
我的家庭控制器声明如下.
Var Melt
  Furnace1 =
           (from item in db.tbl_dppITHr
           where item.ProductionHour >= StartShift && item.ProductionHour <= EndDate
           select item).Sum(x => x.Furnace1Total),ViewData["Furnace1Total"] = Melt.Furnace1;

在我看来,我引用ViewData来显示这个.运用

@model dynamic

现在我在Index方法中有很多linq语句.而对于每一个我正在做的ViewData []

我希望有人能够显示如何将多个var从控制器传递到没有ViewData或ViewBag方法的视图.以及我如何在我看来可以访问这个.

解决方法

您应该创建一个ViewModel,其中包含所需的所有数据,然后将其传递给视图.
public class ViewModel 
{
   public List<int> Melt1 { get; set; }

   public void LoadMeltProperties() 
   {

       if (Melt1 == null) 
       {
          Melt1 = new List<int>();
       }

       Melt1 = (from item in db.tbl_dppITHr
       where item.ProductionHour >= StartShift && item.ProductionHour <= EndDate
       select item).Sum(x => x.Furnace1Total).ToList();
   }

   public ViewModel Load()
   {
       LoadMeltProperties();
       return this;
   }
}

public ActionResult YourControllerAction() 
{
      var vm = new ViewModel().Load();
      return View("ViewName",vm);
}

然后在您的视图中,您可以使用强类型模型而不是动态模型

@model ViewModel

然后,您可以通过以下方式遍历您的ViewModel属性:

foreach(var melt in Model.Melt1) {
     // do what you require
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读