diff --git a/Controllers/newsController.cs b/Controllers/newsController.cs index 8299bed..6be2620 100644 --- a/Controllers/newsController.cs +++ b/Controllers/newsController.cs @@ -15,14 +15,29 @@ namespace WebApplication1.Controllers public class newsController : Controller { private newswebappEntities db = new newswebappEntities(); + // GET: news public ActionResult Index() { - var news = db.news.ToList(); - var users = db.users.ToList(); - var models = new Tuple, List>(news, users); - return View(db.news.ToList()); + var models = (from user in db.users // Access Users DbSet + join news in db.news on user.ID equals news.userID into newsGroup // Join News DbSet + from news in newsGroup.DefaultIfEmpty() // Left outer join + where news != null // Filter based on existence of news record + select new newsModel + { + DisplayName = user != null ? user.displayname : null, + NewsID = news.ID, // Use null-conditional operator for missing news + Title = news.title, + Image = news.image, + category = news.cat, + tag = news.tag, + date = news.publishDate, + views = news.views + }).ToList(); + + + return View(models); } // GET: news/Details/5 @@ -38,7 +53,7 @@ namespace WebApplication1.Controllers return HttpNotFound(); } var user = db.users.Find(news.userID); - // var model = new Tuple(news,user); + ViewBag.user = user; return View(news); } diff --git a/Models/newsModel.cs b/Models/newsModel.cs new file mode 100644 index 0000000..24ff4ff --- /dev/null +++ b/Models/newsModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace WebApplication1.Models +{ + public class newsModel + { + public string DisplayName { get; set; } + public string Title { get; set; } + public int? NewsID { get; set; } + public string Image { get; set; } + public string category { get; set; } + public string tag { get; set; } + public int? views { get; set; } + public DateTime? date { get; set; } + } +} \ No newline at end of file diff --git a/Views/news/Details.cshtml b/Views/news/Details.cshtml index 501c28d..fb6ee66 100644 --- a/Views/news/Details.cshtml +++ b/Views/news/Details.cshtml @@ -1,7 +1,9 @@ -@model WebApplication1.Models.news +@using WebApplication1.Models +@model news @{ ViewBag.Title = "Details"; + var _user = ViewBag.user as user; }

Details

@@ -23,8 +25,8 @@
- - @Html.DisplayFor(model => model.image) + +
@@ -68,11 +70,11 @@
- @Html.DisplayNameFor(model => model.userID) + original poster
- @Html.DisplayFor(model => model.userID) + @_user.displayname
diff --git a/Views/news/Index.cshtml b/Views/news/Index.cshtml index 1dd3a67..8f2e6fc 100644 --- a/Views/news/Index.cshtml +++ b/Views/news/Index.cshtml @@ -1,4 +1,5 @@ -@model IEnumerable +@using WebApplication1.Models +@model List @{ ViewBag.Title = "Index"; } @@ -11,19 +12,22 @@ + @@ -31,24 +35,27 @@ @foreach (var item in Model) { + } diff --git a/WebApplication1.csproj b/WebApplication1.csproj index c8c5b71..65f9c8a 100644 --- a/WebApplication1.csproj +++ b/WebApplication1.csproj @@ -152,6 +152,7 @@ Model1.tt +
- @Html.DisplayNameFor(model => model.title) + Title - @Html.DisplayNameFor(model => model.cat) + Category - @Html.DisplayNameFor(model => model.publishDate) + Tag - @Html.DisplayNameFor(model => model.userID) + Publisher - @Html.DisplayNameFor(model => model.views) + Published On + + views
- @Html.DisplayFor(modelItem => item.title) + @Html.DisplayFor(modelItem => item.Title) - @Html.DisplayFor(modelItem => item.cat) + @Html.DisplayFor(modelItem => item.category) - @Html.DisplayFor(modelItem => item.publishDate) + @Html.DisplayFor(modelItem => item.tag) - @Html.DisplayFor(modelItem => item.userID) + @Html.DisplayFor(modelItem => item.DisplayName) + + @Html.DisplayFor(modelItem => item.date) @Html.DisplayFor(modelItem => item.views) - @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | - @Html.ActionLink("Details", "Details", new { id=item.ID }) | - @Html.ActionLink("Delete", "Delete", new { id=item.ID }) + @Html.ActionLink("Edit", "Edit", new { id = item.NewsID }) | + @Html.ActionLink("Details", "Details", new { id = item.NewsID }) | + @Html.ActionLink("Delete", "Delete", new { id = item.NewsID })