MVC查看问题

时间:2011-02-20 09:54:09

标签: asp.net-mvc

<% foreach (var item in Model) { %>

        <tr>
            <td>

我的foreach语句中出现错误,该语句表示对象引用未设置为Model上对象的实例。它只是在模型上没有任何东西。 我已经创建了LinqToSql作为我的模型......我想知道缺少什么。

2 个答案:

答案 0 :(得分:1)

出现此错误的原因是您的模型为null。确保您的视图是对此模型的强类型,并且您在控制器操作中传递模型:

public ActionResult Foo()
{
    IEnumerable<Bar> model = FetchTheModelFromSomewhereAndMakeSureItIsNotNull();
    return View(model);
}

现在在您的视图中,您可以循环使用编辑器/显示模板:

<table>
    <thead>
        <th>Id</th>
        <th>Name</th>
    </thead>
    <tbody>
    <%= Html.DisplayForModel() %>
    </tbody>
</table>

并在相应的显示模板(~/Views/Shared/DisplayTemplates/Bar.ascx)中:

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<AppName.Models.Bar>" 
%>
<tr>
    <td><%= Html.DisplayFor(x => x.Id) %></td>
    <td><%= Html.DisplayFor(x => x.Name) %></td>
</tr>

答案 1 :(得分:1)

脱离我的头顶,

public ActionResult Index()
        {
            var model = from m in Context.table
                        select m;

            return View(model);
        }

然后确保在视图...

中引用视图模型
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<CreditCards.ViewModels.TransactionViewModel>" %>