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标签,这就是为什么你会收到这个消息。仔细检查你的标签