如何将数据从控制器传输到视图

时间:2014-04-17 12:41:50

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

HomeController.cs

[HttpPost]
public ActionResult Index(int searchtext)
{
    var data = (from pm in db.ProductMasters
                join shi in db.SuppliersHotelsInfoes
                    on pm.ProductID equals shi.LocHotelID
                where shi.SearchID == searchtext
                select new {pm.ProductId,pm.Image,shi.HotelName,shi.HotelPrice}).ToList().Take(10);
    ViewBag.Data = data;
        return View();
}

将数据传输到视图

<% try { %>
<tr><td>
    <% foreach(var item in ViewBag.Data){ %>
    <img alt="" src="<%= item. %>" />
        </td><%} %>            <% foreach(var item in ViewBag.Data) { %>
    <td><%: Html.DisplayFor(modelItem => "")%></td>
    <td><%: Html.DisplayFor(modelItem => "")%> </td>
    <td><%: Html.DisplayFor(modelItem => "")%></td>
</tr>
<%} }%>
<%catch(Exception ex){ }%>

在这里,如何获取&#34; var item&#34;

中的值

1 个答案:

答案 0 :(得分:0)

你真的应该使用ViewModel,我上次使用ViewBag时无法记住

我也会在这里使用Razor,它的语法更简洁。如果您只提供数据,则无需使用DisplayFor

@foreach(var item in ViewBag.Data){ 
 <tr>
   <td><img alt="" src="@item.Image" /><td>
   <td>@item.ProductId</td>
   <td>@item.HotelName</td>
   <td>@item.HotelPrice</td>
  </tr>
}