0

データベースからwebgridにデータをバインドしています。webgridのすべての行でアクションリンクの編集を維持したいのですが、以下の行を試しましたがObject reference not set to an instance of an object、以下の行の近くでエラーが発生しました。私のモデル名はUserです。

foreach(var item in Model)

私もコード全体を投稿します

var grid = new WebGrid(source: MvcPopupGrid.Models.User.Users, rowsPerPage: 5);
@grid.GetHtml(
    tableStyle: "grid", headerStyle: "gridhead", footerStyle: "paging", rowStyle: "td-dark", alternatingRowStyle: "td-light",
        columns:
             grid.Columns(
             grid.Column(header: "Id", format: @<text><label id="lblId" title="@item.Id">@item.Id</label></text>),
             grid.Column(header: "Name", format: @<text><label id="lblName" title="@item.Name">@item.Name</label></text>),
             grid.Column(header: "College", format: @<text><label id="lblCollege" title="@item.College">@item.College</label></text>),
             grid.Column(header: "PassedOut", format: @<text><label id="lblPassedOut" title="@item.PassedOut">@item.PassedOut</label></text>),
             grid.Column(header: "Mobile", format: @<text><label id="lblMobile" title="@item.Mobile">@item.Mobile</label></text>)))
foreach(var item in Model)
{
    @item.Id
    @item.Name
    @item.College
    @item.PassedOut
    @item.Mobile
    @Html.ActionLink("Edit", "UserEdit", new { Id = "@item.Id" }, new { @class = "abookModal", title = "Edit User" })
}
4

1 に答える 1

4

モデルがnullです。私はあなたの見解がいくつかのコレクションに強くタイプされていると思います:

@model IEnumerable<SomeType>
@foreach (var item in Model)
{
    ...
}

ただし、このビューをレンダリングしたコントローラーアクション内で、モデルをビューに渡さなかったか、nullを渡しました。したがって、これが発生しないことを確認してください。

public ActionResult SomeAction()
{
    IEnumerable<SomeType> model = ... fetch the collection from somewhere and make sure this collection is not null
    return View(model);
}

私が気付いているもう1つのことは、WebGridソースをいくつかのMvcPopupGrid.Models.User.Usersプロパティにポイントしていることです。

var grid = new WebGrid(source: MvcPopupGrid.Models.User.Users, rowsPerPage: 5);

また、このプロパティがnullを返さないことを確認する必要があります。

于 2012-08-27T11:47:27.253 に答える