2017-08-04 4 views
0

Ich habe eine Web App, wo Benutzer Artikel auf der Homepage veröffentlichen können. Derzeit werden die Elemente auf der Startseite vom ältesten zum neuesten Datum aufgelistet. Das ist nicht gut, da die Benutzer beim Besuch der Startseite die neuesten Posts sehen möchten.So zeigen Sie Beiträge von der neuesten in die älteste in ASP.NET MVC5

Ich habe eine DatePosted-Eigenschaft in meinem Post-Modell, die ich verwende, um die Uhrzeit und das Datum eines Postings zu verfolgen. Wie kann ich mit dieser Eigenschaft nach "Neueste" nach "Älteste" sortieren?

Hier ist meine Aktion, die Benutzer auf die Homepage nimmt, wo sie Beiträge sehen kann: Sie

@model IEnumerable<DothanTrader.Models.Post> 

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 



@{ 
    int i = 5; 
} 
<div class="row"> 
    @foreach (var item in Model) 
    { 
     if (i == 5) 
     { 
      @:</div><div class="row"> 

      i = 1; 
     } 
     <div class="col-md-3"> 
      <div class="panel panel-default"> 
       <div class="panel-heading"> 
        @Html.ActionLink(@item.Title, "Details", "Post", new { id = item.PostId }, null) 
       </div> 
       <div class="panel-body" style="min-height: 200px; max-height: 200px; "> 
        <img src="@Url.Content("~/Content/images/" + System.IO.Path.GetFileName(item.Image))" alt="" class="img-responsive" /> 
       </div> 
       <div class="panel-footer"> 
        <span class="glyphicon glyphicon-eye-open"> @item.Views</span> | <span class="glyphicon glyphicon-usd"> @item.Price</span> 
        <div class="pull-right"> 
         <span>@item.DatePosted.Value.ToShortDateString()</span> 
        </div> 
       </div> 
      </div> 
     </div> 
     { i++; } 
    } 
</div> 

Das Modell (nur für den Fall:

// GET: Posts 
public ActionResult Index() 
{ 
    var posts = db.Posts.ToList(); 

    return View(posts); 
} 

The View brauche es):

public class Post 
    { 
     public int PostId { get; set; } 
     public string Title { get; set; } 
     public string Description { get; set; } 
     public DateTime? DatePosted { get; set; } 
     public string Image { get; set; } 
     public float Price { get; set; } 
     public int Views { get; set; } 
     public int Likes { get; set; } 
     public virtual ApplicationUser ApplicationUser { get; set; } 
     public string ApplicationUserId { get; set; } 
    } 

Antwort

0

Verwenden Sie db.Posts.OrderByDescending(p => p.DatePosted).ToList()

+0

nett. Arbeitete perfekt. – Michael

+0

@Michael Bitte markieren Sie dies als Antwort, wenn es Ihr Problem gelöst hat. Danke – Shahzad

+0

werde ich. Es sagt mir immer wieder, dass ich fünf Minuten warten soll, wenn ich versuche, die Antwort zu akzeptieren. – Michael

Verwandte Themen