c# - 如何在一个模型中合并两个不同的模型并在一个视图中显示输出?
问题描述
这是我的模型
{
public int Id { get; set; }
public int? MainSurveyId { get; set; }
public string Question { get; set; }
public DateTime? DateCreated { get; set; }
public string CreatedBy { get; set; }
public string Status { get; set; }
public IList<xxAnswer> answers { get; set; }
}
这是我的控制器,请注意我将var question
和var answer
[HttpPost]
public IActionResult CompareCompetitors(string[] comps, int Surveyid)
{
var model = new CompareCompetitorAnswers();
foreach( var item in comps){
model.competitorNames.Add( new xxCompetitor() { CompetitorName = item} );
}
var questions = _context.SurveyQuestions.ToList().Where(x => x.MainSurveyId == Surveyid);
foreach (var q in questions){
model.questions.Add(new xxQuestion { Question = q.Question});
}
var answers = _context.SurveyCompetitorAnswer.ToList().Where(x => x.MainSurveyId == Surveyid);
foreach (var a in answers){
model.answers.Add(new xxAnswer { Answer = a.Answer});
}
return View(model);
//return string.Join(",", comps); // check if it works with this. ph wait. i think correct. sorry. i will try now.
}
这是我的观点,但它显示@foreach (var a in q.answers)
.
<tbody>
@foreach (var q in Model.questions)
{
<tr>
<td scope="row">
@q.Question
</td>
@foreach (var a in q.answers)
{
<td scope="row">
@a.Answer
</td>
}
</tr>
}
</tbody>
我希望将答案发布在结果旁边。它们位于不同的数据库表中。但它输出错误@foreach (var a in q.answers)
。
解决方案
我终于想通了:
<tbody>
@foreach (var q in Model.questions)
{
<tr>
<td scope="row">
@q.Question
</td>
@foreach (var a in Model.answers.Where(x => x.SurveyQuestionId == q.Id))
{
<td scope="row">
@a.Answer
</td>
}
</tr>
}
</tbody>
我没有使用
public IList<xxAnswer> answers { get; set; }
我刚用过:
@foreach (var a in Model.answers.Where(x => x.SurveyQuestionId == q.Id))
推荐阅读
- android - 即使在生成密钥后直接与共享它也未安装android应用程序
- c# - 是否有一个函数可以忽略“ᔓ锓ó”“í”和“ú”等字符?
- php - 删除路线没有得到任何数据Laravel 6.X
- javascript - React Hooks 问题:打开模块化模式
- laravel - 为什么我的注销功能中的请求用户为空?
- c# - BackgroundImage 可以在透明的 Form 背景上有透明的部分吗?
- html - 您可以在保持相同高度的同时拉伸字体大小吗?
- r - 3D scatterplot done with plot3D producing strange behaviour
- jupyter-lab - JupyterLab installation with pip3
- java - How to write a regex capture group which matches a character 3 or 4 times before a delimiter?