通过MVC中的颜色编码区分从数据库加载的问题
本文关键字:数据库 加载 问题 编码区 MVC 颜色 通过 | 更新日期: 2023-09-27 18:29:36
我将所有问题加载到模型中,然后加载到数据库中。
我对问题的颜色编码有问题。我在数据库中有一个表,我从中得到了所有的问题。
这是我使用的方法
public List<QuestionAnswerModel> GetQuestionsbyAppId(int appId, string purpose = "XXX")
{
using (var context = new someEntities())
{
var data = (from q in context.Questions
join aq in context.Application_Question_Mapping.Where(a => a.ApplicationId == appId) on q.QuestionId equals aq.QuestionId into answer
from an in answer.DefaultIfEmpty()
where q.Purpose == purpose
select new QuestionAnswerModel
{
QuestionId = q.QuestionId,
QuestionText = q.QuestionText,
SelectedAnswer = an == null ? String.Empty : an.Answer,
QuestionOptions = q.QuestionOptions,
Comments = (an == null) ? string.Empty : an.Comments,
AnsweredBy = an == null ? null : an.AnsweredBy,
AnswerDateTime = an == null ? null : an.AnsweredTime,
}).ToList();
return data;
}
}
在HTML中,我将问题显示为
@foreach (var question in Model)
{
<div class="whiteContainer pad-10 pull-left col-lg-15" style="width: 95%; padding: 5px; margin-bottom: 3px">
<div class="form-group">
<input type="hidden" value="@question.QuestionId" name="QuestionId" id="QuestionId" />
<label class="label-reports">@question.QuestionText</label>
<br>
@foreach (var ans in question.QuestionOptions.Split('|'))
{
if (!string.IsNullOrWhiteSpace(question.SelectedAnswer) && ans == question.SelectedAnswer)
{
<label class="radio-inline">
<input type="radio" @((ViewBag.UserId != null && ViewBag.UserId == question.AnsweredBy) || (question.AnsweredBy == null) ? "" : "disabled") checked="checked" name="@string.Format("inlineRadioOptions-{0}", question.QuestionId)" id="@string.Format("{0}{1}", question.QuestionId, question.SelectedAnswer)" value="@ans"> @ans
</label>
}
else
{
<label class="radio-inline">
<input type="radio" @((ViewBag.UserId != null && ViewBag.UserId == question.AnsweredBy) || (question.AnsweredBy == null) ? "" : "disabled") name="@string.Format("inlineRadioOptions-{0}", question.QuestionId)" id="@string.Format("{0}{1}", question.QuestionId, question.SelectedAnswer)" value="@ans"> @ans
</label>
}
}
<br />
<label class="label-reports" >Comments</label>
<input @((ViewBag.UserId != null && ViewBag.UserId == question.AnsweredBy) || (question.AnsweredBy == null) ? "" : "disabled") maxlength="100" type="text" class="form-control" style="width: 900px !important" for="comments" value="@question.Comments" />
</div>
</div>
}
通过这个,我现在可以得到所有的问题,问题是我必须对一些问题进行颜色编码(比如第一个问题和第10个问题)
有人能建议一种方法吗?
感谢
在判断问题是否为不同颜色的问题上存在混淆。然而,根据OP:
"这类似于说他们希望前5个问题是红色,下5个是蓝色,我有一个来自数据库表的questionid
,基于它们,我想给它上色"
考虑到这一点,您可以简单地在Razor中放入if
语句来确定颜色。
@if (question.questionId <= 5)
{
<div class="redContainer pad-10 pull-left col-lg-15" style="width: 95%; padding: 5px; margin-bottom: 3px">
}
else
{
<div class="blueContainer pad-10 pull-left col-lg-15" style="width: 95%; padding: 5px; margin-bottom: 3px">
}
您需要回到给您提供规范的人那里,告诉他们问题模型中需要另一个属性来确定颜色。
如果你把问题4、5和6涂成红色,当有人在数据中的上面或中间插入一个新问题时会发生什么?你必须更改代码!应该做的代码,忘记了,再也不需要更改了!