Я пытаюсь заставить NerdDinner работать, и у меня возникли проблемы.
Я быстро проследил за моментом, когда происходит действие actionResult для индекса, и увидел, что элементы из dinRepository находятся справа от оператора присвоения.
Однако кажется, что когда я перехожу к следующей строке кода, обеды, которые передаются в представление, не содержат набора записей.
Может ли кто-нибудь указать мне, где я иду не так.
В результате страница отображается идеально, но записи не отображаются.
namespace NerdDinner.Controllers
{
public class DinnersController : Controller
{
DinnerRepository dinnerRepository = new DinnerRepository();
// GET: /Dinners/
public ActionResult Index()
{
var dinners = dinnerRepository.FindUpcomingDinners().ToList();
return View("Index", dinners);
}
// GET: /Dinners/Details/2
public ActionResult Details(int id)
{
Dinner dinner = dinnerRepository.GetDinner(id);
if (dinner == null)
return View("NotFound");
else
return View("Details", dinner);
}
}
}
А вот и код вида
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NerdDinner.Models.Dinner>>" %>
<asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server">
<h2>Upcoming Dinners</h2>
<ul>
<% foreach (var dinner in Model)
{%>
<li>
<%= Html.Encode(dinner.Title)%>
on
<%= Html.Encode(dinner.EventDate.ToShortDateString())%>
@
<%= Html.Encode(dinner.EventDate.ToShortTimeString())%>
</li>
<% } %>
</ul>
</asp:Content>
И код модели также
открытый класс DinnerRepository
{
private NerdDinnerDataContext db = new NerdDinnerDataContext ();
// Query Methods
public IQueryable<Dinner> FindAllDinners()
{
return db.Dinners;
}
public IQueryable<Dinner> FindUpcomingDinners()
{
return from dinner in db.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}
public Dinner GetDinner(int id)
{
return db.Dinners.SingleOrDefault(d => d.DinnerID == id);
}
// Insert/Delete Methods