我的类中有一个方法,它接受一个布尔值并返回一个字符串,这样用户就不会在视图中看到真或假。然后我尝试在 MVCcontrib 网格中使用此方法
public string BidStatusText(bool status)
{
if (status == true)
return "Bid Confirmed";
else if (status == false)
return "Bid Denied";
else
return "Bid Pending";
}
看法
<%= Html.Pager((IPagination)Model) %>
<% Html.Grid(Model)
.Columns( column => {
column.For(x => x.BidText).Named("Bid Details").Sortable(false).Action(a => {%>
<td>
<%= Html.ActionLink(a.BidText, "Details", new {id = a.BidID})%>
</td>
<% });
column.For(x => x.Sector.SectorName).Named("Sector").Sortable(false);
column.For(x => x.Resource.ResourceName).Named("Resource Requested").Sortable(false);
column.For(x => x.DateStart).Named("Start Date/Time").Format("{0:dd/MM/yyyy HH:mm}");
column.For(x => x.DateEnd).Named("End Date/Time").Format("{0:dd/MM/yyyy HH:mm}");
column.For(x => x.BidStatusText(x.Status)).Sortable(false);
}).RowStart((p,row) => {
if (row.IsAlternate) { %>
<tr class="alt">
<% } else { %>
<tr>
<% }
})
.Sort((GridSortOptions)ViewData["sort"])
.Render(); %>
我得到的错误是
Cannot convert lambda expression to type 'string' because it is not a delegate type
public ActionResult Index(GridSortOptions sort, int? page)
{
var bids = bidRepo.GetUpcomingBids();
if (sort.Column != null)
bids = bids.OrderBy(sort.Column, sort.Direction);
ViewData["sort"] = sort;
return View(bids.AsPagination(page ?? 1, 15));
}