我有以下部分视图:
@model IPagedList<Student>
<h2>List of Students</h2>
<div id="studentList">
<div class="pagedList" data-uwa-target="#studentList">
@Html.PagedListPager(Model,page=>Url.Action("Index",new { page }),
PagedListRenderOptions.MinimalWithItemCountText)
</div>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.LastName) //here error
</th>
<th>
@Html.DisplayNameFor(model => model.FirstName) //here error
</th>
<th>
@Html.DisplayNameFor(model => model.City) //here error
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.City)
</td>
</tr>
}
</table>
<div class="row">
<div class="col-sm-6" id="slid">
<button id="export" class="btn btn-default btn-primary" onclick="location.href='@Url.Action("ExportInCSVFormat")';return false;">Export Student List in CSV Format</button>
</div>
<div class="col-sm-4" id="excelSlide">
<button id="excelExport" class="btn btn-default btn-success" onclick="location.href='@Url.Action("ExportStudentsInExel")';return false;">Export Student List in Excel Format</button>
</div>
</div>
我的Index.cshmtl是:
@model IPagedList<Student>
@{
ViewBag.Title = "Index";
}
@Html.Partial("_Student", Model)
我的StudentController是
public ActionResult Index(int page=1)
{
var model = dbAllStudents.Students
.OrderByDescending(p => p.LastName)
.ToPagedList(page, 10);
return View(model);
}
问题发生在“@ Html.DisplayNameFor(model =&gt; model.LastName)”上。它说“IPaged不支持LastName的定义。
我知道问题是由于我需要添加的学生控制器的Index方法引起的。选择但我不确定。如果有人可以帮助我,我真的很感激
答案 0 :(得分:0)
它不起作用,因为您要使用的重载方法不适合您的界面。适用于IEnumerable<>
类型。您可以访问列表中的第一个元素,即使列表为空,它也应该返回正确的值。
将您的表格定义更改为:
<table class="table">
<tr>
<th>
@Html.DisplayNameFor( => Model[0].LastName)
</th>
<th>
@Html.DisplayNameFor(_ => Model[0].FirstName)
</th>
<th>
@Html.DisplayNameFor(_ => Model[0].City)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(_ => item.LastName)
</td>
<td>
@Html.DisplayFor(_ => item.FirstName)
</td>
<td>
@Html.DisplayFor(_ => item.City)
</td>
</tr>
}
</table>
一切都会好的。