Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 尝试使用C/Linq在razor内部的for循环中显示变量_C#_Asp.net Mvc_Linq_Razor - Fatal编程技术网

C# 尝试使用C/Linq在razor内部的for循环中显示变量

C# 尝试使用C/Linq在razor内部的for循环中显示变量,c#,asp.net-mvc,linq,razor,C#,Asp.net Mvc,Linq,Razor,我试图循环一组数字,并将它们显示在记分卡上。如果我单步执行代码,变量返回正确的值,我就无法显示它们 @foreach (var g in Model) { @Html.Raw(string.Format("<tr>")) int grossScore = 0; @Html.Raw(string.Format("<td>{0}</td>", g.PlayerName))

我试图循环一组数字,并将它们显示在记分卡上。如果我单步执行代码,变量返回正确的值,我就无法显示它们

    @foreach (var g in Model)
    {
        @Html.Raw(string.Format("<tr>"))
            int grossScore = 0;

            @Html.Raw(string.Format("<td>{0}</td>", g.PlayerName))
        for (int s = 0; s < 18; s++)
        {
            @Html.Raw(string.Format("<td>"));

            int holescore = 0;
            var bretak = @g.Scores.Take(1).Skip(s).FirstOrDefault();
            var werwee = @g.Scores.Where(b => b.Hole == s + 1).Select(i => i.Score).FirstOrDefault();
            //if (bretak.Score > 0)
            //{
            //    holescore = bretak.Score;
            //}

            holescore = werwee;

            Html.Raw(string.Format("{0}", holescore));
            //@Html.ToString(holescore);
            //Html.Raw(holescore);
            @Html.Raw(string.Format("<td>" + @holescore + "</td>"));
            grossScore = grossScore + holescore;

            @Html.Raw(string.Format("</td>"));
        }
            @Html.Raw(string.Format("<td>{0}</td>", grossScore))

            @Html.Raw(string.Format("<td align=\"center\"> <button type=\"button\" class=\"btn btn-default btn-xs editBtn\" data-player-id=\"'{0}'\">Edit </button></td>", g.GameId))
            @Html.Raw(string.Format("<td> <button type=\"button\" class=\"btn btn-default btn-xs deleteBtn\" data-player-id=\"'{0}'\">Delete </button></td>", g.GameId)) 
        @Html.Raw("</tr>")
     }

玩家名称显示正确,GrossCore变量计算和显示正确。我从循环内部获得了正确数量的框,但holescore不会显示。很抱歉,它看起来有点凌乱,但我留下了一些代码来展示我尝试过的一些东西。

我认为您误解了html。原始,它用于将字符串解码为html字符串,而不是用于输出,因为您只需键入输出即可 所以不是像这样的事情

@Html.Raw(string.Format("<td>" + @holescore + "</td>"));
就用这个

<td> @holescore</td>

我建议您仔细阅读,以获得更清晰的图片,因为我假设您没有基于上面的代码

Chris看了下面的代码后,开始时需要@

Html.Raw(string.Format("{0}", holescore));
但是下面的语句应该显示分数。您是否尝试过此语句或其仅用于提供信息

    @Html.Raw(string.Format("<td>" + @holescore + "</td>"));

使用上述语句或在第一个语句开头添加@

holescore通过holescore=werwee设置;因此,请确保WerWee不为null,在第4个孔之后为null,但孔1-4都具有有效数据。因此,如果您想显示它,请使用@holescore。谢谢,这很有效!正如Munzer所说,我不明白html.raw在做什么。还有一个问题。。。你的添加工作,但现在我的网站不会加载,如果我点击调试。所有这些代码都可以简单地用@foreach var player in Model{player.PlayerName@foreachvar hole in player.Scores{@hole.Score}@player.Scores.Sumx=>x.Scores}替换,谢谢。您的代码也可以工作,但执行与我上面提到的相同的操作。如果我点击调试,我的网站将无法加载。它将坐在一个空白屏幕上,直到我点击,然后就会出现并工作。关于的有趣之处在于,它下面有一条曲线,表示元素“td”不能嵌套在元素“table”中。td元素表示表中的数据单元。你知道为什么会这样吗?你应该删除html.raw,这是不必要的,我认为你丢失了你的tr标签,这就是为什么你会收到这个消息。仔细检查你的标签