单击按钮即可从数据库获取随机ID

时间:2018-08-13 14:13:14

标签: c# mysql razor model-view-controller lambda

大家好(我是个初学者,请放心),我有这段代码可以搜索我的数据库并显示标题/艺术家,并且效果很好。我需要做一个按钮,单击该按钮会从我的数据库中弹出一个随机ID。我环顾四周,但找不到有用的东西。试图提出一个lamda表达式之类的东西... 谢谢

控制器

public ActionResult Play(string searchTitle, string searchArtist, string shuffle)
{
    var media = from s in db.UploadTables select s;

    if (!string.IsNullOrEmpty(searchTitle))
    {
        media = media.Where(m => m.MediaTitle.Contains(searchTitle));
    }

    if (!string.IsNullOrEmpty(searchArtist))
    {
        media = media.Where(m => m.MediaArtist.Contains(searchArtist));
    }

    return View(media);
}

查看

@using (Html.BeginForm())
{
    <p>
        Song Name: @Html.TextBox("searchTitle")    
        <input type="submit" value="Search" />
        Artist: @Html.TextBox("searchArtist")    
        <input type="submit" value="Search" />
        @Html.TextBox("shuffle")    
        <input type="submit" value="Search" />
    </p>
    <hr />
}

1 个答案:

答案 0 :(得分:0)

Random rand = new Random();
int total = db.UploadTables.Count();
var randomId = db.UploadTables.Skip(rand.Next(total)).First().Id;

Random.Next(Int32 maxValue)将获得一个介于0maxValue-1之间的数字。

IQueryable<TSource>.Skip(this IQueryable<TSource>, int count)将跳过count个条目。

然后,您取出其余条目的First() tadaa ,可以访问其Id字段。

很显然,这只是一种实现方式,而且正如其他人所说的那样,有很多方式可以做到这一点。