2017-06-23 43 views
-2

enter image description here我有一个控制器,从用户定义的函数使用实体framwework.I我试图只显示我的数据在视图中,并填充我的表中的数据。在视图中显示从控制器的列表MVC

我的控制器看起来是这样的:

public ActionResult Index() 
    { 
     var description = "Toyota"; 
     QuotingEngineEntities1 vehicles = new QuotingEngineEntities1(); 


     List<object> list = new List<object>(); 

     using (var context = new QuotingEngineEntities1()) 
     { 

      var vehicle = from s in context.fn_GetVehicle(description) 
          select new 
          { 
           s.MAKE, 
           s.MODEL, 
           s.PRICE, 
           s.POWER, 
           s.Transmission 
          }; 


      list.Add(vehicle.FirstOrDefault()); 


     } 

     ViewBag.list = list; 

     return View(ViewBag.list); 
    } 

和我的看法是这样的

@foreach (var v in ViewBag.list) 
    { 
     <li>@v.MODEL</li> //i get an error 
     <br /> 
    } 

我终于得到它的干活。通过数据不得不循环将其添加到列表中。

public ActionResult Index() 
     { 
      var description = "Toyota"; 

      List<fn_GetVehicle_Result> list = new List<fn_GetVehicle_Result>(); 

       using (var context = new QuotingEngineEntities1()) 
       { 

        var query = context.fn_GetVehicle(description); 

        foreach (var v in query) 
        { 

         list.Add(v); 

        } 

        ViewBag.list = list; 
       } 



      return View("Index",ViewBag.list); 
     } 



enter code here 
+0

'

  • @ v.MODEL
  • '你得到了什么错误? – Curiousdev

    +0

    视图的名称是什么?您需要传递视图名称,然后传递您将要传递的变量或数据。 '返回查看(“查看”,ViewBag.list);' – Joseph

    +1

    @约瑟夫我认为这不是强制性的'返回'声明'viewbag'是不是? – Curiousdev

    回答

    0

    您正在尝试使用Viewbag与您的清单数据,但它不这样做明智的方式,你不要有Viewbag加入到View()方法。它由控制器自动发送到视图中。

    我建议使用ViewModel或ExpandoObject将您的集合发送到视图中。你可以实现诸如以下

    //控制器

    public ActionResult Index() 
    { 
    
         using (var context = new QuotingEngineEntities1()) 
         { 
    
          var vehicle = from s in context.fn_GetVehicle(description) 
              select new 
              { 
               s.MAKE, 
               s.MODEL, 
               s.PRICE, 
               s.POWER, 
               s.Transmission 
              }; 
    
          dynamic yourmodel = new ExpandoObject(); 
          yourmodel.Vehicles = vehicle.ToList(); 
    
         } 
    
    
         return View(yourmodel); 
    } 
    

    //视图

    @using YourProject; // Your Project Name 
    @model dynamic 
    
    @foreach (var v in model.Vehicles) 
    { 
        <li>@v.MODEL</li> 
        <br /> 
    } 
    
    +0

    谢谢在这种情况下,我在yourmodel.Vehicles = vehicle.Tolist()中得到一个错误,因为车辆在使用语句之外是不可访问的。 –

    +0

    @TshepisoSelepe你解决了这个问题吗? – hasan

    +0

    是的,我解决了问题谢谢。我将粘贴我的代码 –

    相关问题