如何使用自定义表单控制器绑定数据以在mvc4中查看

时间:2014-04-17 06:55:02

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

mycontroller.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 pm).ToList().Take(10);
        ViewBag.Data = data;
            return View();
    }

发送viewBag.Data来查看

 <% 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){ }%>
</table>

在这里,我们如何从&#34; var item&#34;

中获取值

1 个答案:

答案 0 :(得分:2)

我暂时没有使用aspx视图语法,但我相信你错过了等号。

你目前有这个:

<img alt="" src="<%item. %>" />
而应该是这个

<img alt="" src="<%=item. %>" />

注意&#34;项目&#34;

之前的=

请点击此处了解详情http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

另外考虑使用更高版本的MVC,它支持更清晰的剃刀语法。

修改

发表评论后,我看到了您的问题。您正在使用ViewBag这是一种动态类型。因此,无法推断您的ViewBag.Data对象是产品母版的集合。您有两种选择:

选项1 - 不要使用ViewBag,而是使用强类型模型。

选项2 - 在您的视图中,将ViewBag.Data投射到产品母带列表中。

例如:

而不是

<% foreach(var item in ViewBag.Data){ %>

使用此

<% foreach(var item in (List<ProductMaster>)ViewBag.Data){ %>