Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC ASP.NET写入数据库是无意中循环的_C#_Asp.net_Asp.net Mvc_Database_Visual Studio - Fatal编程技术网

C# MVC ASP.NET写入数据库是无意中循环的

C# MVC ASP.NET写入数据库是无意中循环的,c#,asp.net,asp.net-mvc,database,visual-studio,C#,Asp.net,Asp.net Mvc,Database,Visual Studio,我对MVC和ASP.NET非常陌生,但我遇到了一个奇怪的问题 我将向数据库中添加一个条目,然后保存更改,但实际情况并非如此 [Authorize] public ActionResult EggRecieved() { //CHECK IF THEY HAVE RECIEVED EGG IN LAST DAY var user = db.PDCUsers.SingleOrDefault(x => x.Username == User.Ide

我对MVC和ASP.NET非常陌生,但我遇到了一个奇怪的问题

我将向数据库中添加一个条目,然后保存更改,但实际情况并非如此

[Authorize]
    public ActionResult EggRecieved()
    {
        //CHECK IF THEY HAVE RECIEVED EGG IN LAST DAY

        var user = db.PDCUsers.SingleOrDefault(x => x.Username == User.Identity.Name);
        var userId = user.Id;

        var possibleEggs = db.PkmnDatas.Where(x => x.CanBeEgg == true);
        var rand = new Random();
        var no = rand.Next(0, possibleEggs.Count());
        var pokemonArray = possibleEggs.ToArray();
        var pokemon = pokemonArray[rand.Next(0, pokemonArray.Count())];
        Boolean? isMale = null;
        if (pokemon.GenderRatio != null)
        {
            isMale = rand.Next(0, 1000) < pokemon.GenderRatio1.ChanceMale * 1000;
        }
        var isShiny = 1 == rand.Next(1,Constants.SHINYCHANCE);
        //GET THE ABILITIES

        db.PlayerPkmns.Add(new PlayerPkmn
        {
            PkmnDataId = pokemon.Id,
            Nickname = pokemon.Name,
            IsMale = (bool)isMale,
            Nature = rand.Next(1, 25),
            Ability = 1,
            EggObtained = DateTime.Now,
            Shiny = isShiny,
            CurrentTrainerId = userId,
            OriginalTrainerId = userId,
            StepsToHatch = Constants.TOTALSTEPSFOREGGHATCH
        });

        db.SaveChanges();

        return EggRecieved();
    }
[授权]
公共行动结果(已收到)
{
//检查他们是否在最后一天收到了鸡蛋
var user=db.pdccusers.SingleOrDefault(x=>x.Username==user.Identity.Name);
var userId=user.Id;
var possibleEggs=db.PkmnDatas.Where(x=>x.CanBeEgg==true);
var rand=new Random();
var no=rand.Next(0,possibleEggs.Count());
var pokemonArray=possibleEggs.ToArray();
var pokemon=pokemonArray[rand.Next(0,pokemonArray.Count())];
布尔值?isMale=null;
if(pokemon.GenderRatio!=null)
{
isMale=rand.Next(0,1000)
当我点击一个按钮调用这个方法时,服务器会花半分钟的时间说它无法访问视图

然后我检查我的数据库,我有500多个新的数据行

我不确定发生了什么,但它似乎在不断调用这个方法并写入数据库


有人知道为什么,以及我如何修复它吗?

您最终递归调用了该方法,使用

return EggRecieved();
您应该在那里返回一个
ActionResult
,如

return View("MyView");

发生这种情况是因为在return语句中,您写道:

return EggRecieved();

这意味着您再次调用同一个方法,它陷入了无休止的循环抛出错误。用你的视图或Json等删除它。

你在代码末尾写的是return eggReceived(),它是worng, 您需要返回所需的视图()。 因此,替换接收到视图()的eggg;因为当您返回eggReceived()时,每次它都会进行递归循环和调用
谢谢你

我觉得自己很笨。深夜编码不是最有效的