剃刀页面排名

Razor Page Ranking

我正在尝试使用 razor 页面制作排名页面。

我将从 API(链接到数据库)获取我的数据。

DB中的样本数据为

CREATE TABLE Member (Id int, Points int);
INSERT INTO Member VALUES (1, 200);
INSERT INTO Member VALUES (2, 100);
INSERT INTO Member VALUES (3, 20);
INSERT INTO Member VALUES (4, 50);
INSERT INTO Member VALUES (5, 300);

我是用memberid = 2登录的,所以我现在的排名是3。

我需要在 table 中显示排名 2、3 和 4 的数据。

示例显示为

Rank      MemberID           Points
 2            1                200
 3            2                100
 4            4                 50

如何实现?

    using (var client = new HttpClient())
            {
                var id = Request.Cookies["MemberId"].ToString();
                client.BaseAddress = new Uri(baseUrl);
                var responseTask = client.GetAsync("api/members");
                responseTask.Wait();
                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var memberResponse = result.Content.ReadAsStringAsync().Result;
                    Member = JsonConvert.DeserializeObject<IList<Member>>(memberResponse);
                    var member = Member.OrderByDescending(x => x.Points);
                    Member = member.ToList().GetRange(member.ToList().FindIndex(x => x.Id == Int32.Parse(id)) - 1, 3);
                }
                else
                {
                    Member = (IList<Member>)Enumerable.Empty<Member>();
                    ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
                }
            }

这就是我目前所得到的。我只能显示来自用户的 +1 和来自用户的 -1。但是我得到的排名是错误的。

<table class="table">
<thead>
    <tr>
        <th>
            Rank
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Member[0].UserName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Member[0].Points)
        </th>
    </tr>
</thead>
<tbody>
    @{int rank = 0;}
    @foreach (var item in Model.Member)
    {
        <tr>
            <td>
                @{rank++;}<label># @rank</label>
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.UserName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Points)
            </td>
        </tr>
    }
</tbody>

这是我为我的 cshtml 页面得到的。

谢谢!

所以我理解正确,你是在追求3人的排行榜吗? 所以在排行榜中与坐在他们之上和之下的成员一起登录的成员?

查看 api 看起来它只包含一个 memberId 和 returns 该成员,还有其他 api 吗?可以按等级或成员列表获取成员的?