【发布时间】:2014-02-03 19:12:25
【问题描述】:
我有一个来自现有表的实体对象,它是 Question 表。
问题:
Id
Value
我有另一个实体对象,它是一个Answer 表,但是它非常扁平:
问题解答:
Identity COL | QuestionAnswer1 | QuestionAnswer2 | QuestionAnswer3 ...
我正在尝试构建一个 HTML 表格,在其中我在 1 列中显示问题,然后在旁边的列中显示答案。
但由于答案表是平的,我遇到了问题。
@{int iCount = 0;
string answerKey = "";}
@foreach (var item in Model.Questions) {
var calc = iCount + 1;
answerKey = "QuestionAnswer" + calc.ToString();
<tr>
<td>@Model.Questions[iCount].Question</td>
<td> </td>
<td></td>
<td> </td>
<td>@Model.Answers[0].QuestionAnswer1</td>
<td> </td>
<td></td>
<td> </td>
<td></td>
</tr>
iCount++;
}
我可以完美地显示问题,但由于表格的设置方式,QuestionAnswer1 会显示所有不正确的问题:
Question1 | QA1
Question2 | QA1
Question3 | QA1
...
我想要它
Question1 | QA1
Question2 | QA2
Question3 | QA3
...
我想知道是否有一种方法可以使用 iCount 变量来构建列名:
string QA = "QuestionAnswer"+iCount;
那么我可以这样做:
<td>@Model.Answers[0].QA</td>
但这不对...我可以做这样的事情还是有另一种非常明显的方法?
这是我正在使用的模型:
public List<Question> Questions { get; set; }
public List<QuestionAnswer> QuestionAnswers { get; set; }
【问题讨论】:
-
您可以粘贴模型的 C# 类定义吗?
-
我正在使用实体框架,所以我的对象来自我在问题中发布的数据库本身(问题和 QuestionAnswer)。我会发布模型,但它只有 2 个列表(问题和问题答案)。
-
我真的不清楚这与 linq 或动态 linq 有什么关系...
-
我现在明白你在问什么,但这对于静态类型语言来说是错误的方法。使用反射是可能的,但既不容易也不容易。如果您真的想要做这样的事情而不是使用字典而不是硬编码模型。但是,更好的方法是将问题与视图模型中的正确答案相关联,然后再将其发送到视图。
-
是的,我绝对是对的:P
标签: c# linq asp.net-mvc-4 razor