C# 如何确保数字正确显示在添加的每个网格上?

C# 如何确保数字正确显示在添加的每个网格上?,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,我正在使用MVC+EF 我有一个提要xml文件url,它每7分钟更新一次条目,每次添加一个新条目时,我都会将所有条目检索到一个列表变量,然后将这些变量添加到我的数据库表中。之后,我填充一个新的列表变量,它是数据库表中的ViewModel。然后我在视图中声明ViewModel,它是一个.cshtml文件,并循环遍历所有对象并显示它们 我如何确保最新的项目放在顶部而不是底部,并且数字显示顺序正确 这就是我在cshtml中显示项目的方式。注意,我使用了一个++数字,所以最新的项目必须是1,依此类推:

我正在使用MVC+EF

我有一个提要xml文件url,它每7分钟更新一次条目,每次添加一个新条目时,我都会将所有条目检索到一个列表变量,然后将这些变量添加到我的数据库表中。之后,我填充一个新的列表变量,它是数据库表中的ViewModel。然后我在视图中声明ViewModel,它是一个.cshtml文件,并循环遍历所有对象并显示它们

我如何确保最新的项目放在顶部而不是底部,并且数字显示顺序正确

这就是我在cshtml中显示项目的方式。注意,我使用了一个++数字,所以最新的项目必须是1,依此类推:

@model Project.Viewmodel.ItemViewModel
@{
    int number = 0;
 }
<div id="news-container">
@foreach (var item in Model.NewsList.OrderByDescending(n => n.PubDate))
{
    <div class="grid">
        <div class="number">
            <p class="number-data">@(++number)</p>
        </div>
        <p class="news-title">@(item.Title)</p>
        <div class="item-content">            
            <div class="imgholder">
                <img src="@item.Imageurl" />
                <p class="news-description">
                    @(item.Description) 
                    <br />@(item.PubDate) | 
                    <a href="@item.link">Source</a>
                </p>
            </div>
        </div>
    </div>                  
}
</div>
如果你检查这张图片,它是如何显示的数字,这是不正确的

如果你看到箭头应该是这样的,我怎么能做到呢

感谢您的任何帮助:)


注意:当我删除
.OrderByDescending
时,每个网格上的数字都是正确的。但是我需要
.OrderByDescending
因为我想要最新添加的项目在顶部。

查看草图,我假设您有
浮动:左
显示:内联块
,用于
网格
类。添加
float:right
可能会奏效

如果这没有帮助,请发布你的CSS。

只是一个简短的词

您正在将NewsViewModel传递给视图并对ItemViewModel执行迭代..y? 你认为这可能是问题的原因吗

问候

试试这个

private void FillProductToModel(ItemViewModel model, News news)
{
var newList = list.OrderByDescending(x => x.News.Date).toList();
var productViewModel = new NewsViewModel
{
    Description = newList .Description,
    NewsId = newList .Id,
    Title = newList .Title,
    link = newList .Link,
    Imageurl = newList .Image,
    PubDate = newList .Date,
};
model.NewsList.Add(productViewModel);

您可以使用以下方法对新闻列表进行排序:

一旦列表正确排序,就可以简单地使用CSS显示新闻列表,每行显示两个项目。看这个

这把小提琴是我之前问过的一个类似问题中提供给我的修订版小提琴。

试试这个:

@model Project.Viewmodel.ItemViewModel
@{
    int number = 0;
    var NewsItems=Model.NewsList.OrderByDescending(n => n.PubDate).ToList();
 }
<div id="news-container">
@foreach (var item in NewsItems)
{
    <div class="grid">
        <div class="number">
            <p class="number-data">@(++number)</p>
        </div>
        <p class="news-title">@(item.Title)</p>
        <div class="item-content">            
            <div class="imgholder">
                <img src="@item.Imageurl" />
                <p class="news-description">
                    @(item.Description) 
                    <br />@(item.PubDate) | 
                    <a href="@item.link">Source</a>
                </p>
            </div>
        </div>
    </div>                  
}
</div>
@model Project.Viewmodel.ItemViewModel
@{
整数=0;
var newitems=Model.NewsList.OrderByDescending(n=>n.PubDate.ToList();
}
@foreach(新闻项中的var项)
{

@(++数字)

@(项目标题)

@(项目说明)
@(项目发布日期)|

}
你能用呈现的html设置JSFIDEL吗?你的
PubDate
在6和5中的顺序也是错误的吗?也许你应该先检查一下你的
Model.NewsList.OrderByDescending(n=>n.PubDate)
result欢迎你…很高兴它起作用了。我不太确定会不会。
model.NewsList.Sort((a, b) => b.PubDate.Date.CompareTo(a.PubDate.Date));
@model Project.Viewmodel.ItemViewModel
@{
    int number = 0;
    var NewsItems=Model.NewsList.OrderByDescending(n => n.PubDate).ToList();
 }
<div id="news-container">
@foreach (var item in NewsItems)
{
    <div class="grid">
        <div class="number">
            <p class="number-data">@(++number)</p>
        </div>
        <p class="news-title">@(item.Title)</p>
        <div class="item-content">            
            <div class="imgholder">
                <img src="@item.Imageurl" />
                <p class="news-description">
                    @(item.Description) 
                    <br />@(item.PubDate) | 
                    <a href="@item.link">Source</a>
                </p>
            </div>
        </div>
    </div>                  
}
</div>