show currect news list and user name in news detals
This commit is contained in:
@ -19,10 +19,29 @@ namespace WebApplication1.Controllers
|
||||
// GET: news
|
||||
public ActionResult Index()
|
||||
{
|
||||
var news = db.news.ToList();
|
||||
var users = db.users.ToList();
|
||||
var models = new Tuple<List<news>, List<user>>(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
|
||||
public ActionResult Latest()
|
||||
{
|
||||
return View(db.news.OrderByDescending(v => v.views).ToList());
|
||||
}
|
||||
|
||||
// GET: news/Details/5
|
||||
@ -38,7 +57,21 @@ namespace WebApplication1.Controllers
|
||||
return HttpNotFound();
|
||||
}
|
||||
var user = db.users.Find(news.userID);
|
||||
// var model = new Tuple<object,object>(news,user);
|
||||
ViewBag.user = user;
|
||||
news.views += 1;
|
||||
db.SaveChanges();
|
||||
/*
|
||||
var key = Request.ServerVariables["REMOTE_ADDR"];
|
||||
var now = DateTime.UtcNow;
|
||||
|
||||
if (now - View.LastVisited > _timeLimit)
|
||||
{
|
||||
pageView.LastVisited = now;
|
||||
_pageViews[key] = pageView;
|
||||
return true; // View counted
|
||||
}
|
||||
return false; // View within time limit, not counted
|
||||
*/
|
||||
return View(news);
|
||||
}
|
||||
|
||||
|
||||
19
Models/newsModel.cs
Normal file
19
Models/newsModel.cs
Normal file
@ -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 int NewsID { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Image { get; set; }
|
||||
public string category { get; set; }
|
||||
public string tag { get; set; }
|
||||
public DateTime? date { get; set; }
|
||||
public int? views { get; set; }
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Details";
|
||||
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
@ -23,8 +24,7 @@
|
||||
</dt>
|
||||
|
||||
<dd>
|
||||
<img src="@Model.image" />
|
||||
@Html.DisplayFor(model => model.image)
|
||||
<img src="@Url.Content(Model.image)" height="270" width="200" />
|
||||
</dd>
|
||||
|
||||
<dt>
|
||||
@ -72,7 +72,7 @@
|
||||
</dt>
|
||||
|
||||
<dd>
|
||||
@Html.DisplayFor(model => model.userID)
|
||||
@ViewBag.user.displayname
|
||||
</dd>
|
||||
|
||||
<dt>
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
@model IEnumerable<WebApplication1.Models.news>
|
||||
@using WebApplication1.Models
|
||||
@model IEnumerable<newsModel>
|
||||
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
@ -11,44 +14,51 @@
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.title)
|
||||
title
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.cat)
|
||||
category
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.publishDate)
|
||||
tag
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.userID)
|
||||
publish date
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(model => model.views)
|
||||
publisher
|
||||
</th>
|
||||
<th>
|
||||
Views
|
||||
</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
@foreach (var item in Model) {
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.title)
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.cat)
|
||||
@Html.DisplayFor(modelItem => item.category)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.publishDate)
|
||||
@Html.DisplayFor(modelItem => item.tag)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.userID)
|
||||
@Html.DisplayFor(modelItem => item.date)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.DisplayName)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.views)
|
||||
</td>
|
||||
<td>
|
||||
@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 })
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
@ -153,6 +153,7 @@
|
||||
<DependentUpon>Model1.tt</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\Login.cs" />
|
||||
<Compile Include="Models\newsModel.cs" />
|
||||
<Compile Include="Models\Register.cs" />
|
||||
<Compile Include="Controllers\tagsController.cs" />
|
||||
<Compile Include="Models\TheNews.cs" />
|
||||
|
||||
Reference in New Issue
Block a user