我有2个问题列表,其中1个问题有2种语言,如果有的话,我想为该问题行显示2种Action Link语言。但我不知道如何连续显示另一种语言。我只能展示一种语言。
任何提示或指导?
db.SURV_Question_Model数据:
__________________________________________
Survey ID | Question_ID | Qext_Text |
==========================================
1 | 1 | Q1 |
2 | 2 | Q2 |
==========================================
db.SURV_Question_Ext_Model数据:
___________________________________________________
| Quext_Question_ID | Qext_Text | Qext_Language |
===================================================
| 1 | Q1 | ENG |
| 1 | Q1 | GER |
| 2 | Q2 | ENG |
===================================================
我想在Razor视图中显示的内容:
__________________________________________________
Quext_Question_ID | Qext_Text | Qext_Language |
===================================================
1 | Q1 | ENG | GER |
2 | Q2 | ENG |
===================================================
我的控制器:
public ActionResult SURV_Main_Details_QuestionList(int Survey_ID)
{
List<QuestionLinkListViewModel> viewmodel = new List<QuestionLinkListViewModel>();
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.Qext_Question_ID into grp
select grp.FirstOrDefault();
foreach (var item in query)
{
viewmodel.Add(new QuestionLinkListViewModel()
{
Survey_ID = Survey_ID,
Question_ID = item.r.Qext_Question_ID,
QuestionText = item.r.Qext_Text,
Languages = item.r.Qext_Language,
});
}
return PartialView(viewmodel);
}
我的剃须刀视图:
@using (Html.BeginForm())
{
<table class="strip">
for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td></td>
<td width="70%">
@Model[i].QuestionText
</td>
<td>
@Html.ActionLink(Model[i].Languages, "SURV_Question_Edit", "SURV_Question", new { Question_ID = Model[i].Question_ID, Languages = Model[i].Languages }, new { @class = "popup-link2" })
@Html.Raw(" ")
@Html.ActionLink(Model[i].Languages2, "SURV_Question_Edit", "SURV_Question", new { Question_ID = Model[i].Question_ID, Languages = Model[i].Languages2 }, new { @class = "popup-link2" })
</td>
</tr>
}
</table>
}
答案 0 :(得分:0)
我通过在查询中添加Query来修复它:
public ActionResult SURV_Main_Details_QuestionList(int Survey_ID)
{
List<QuestionLinkListViewModel> viewmodel = new List<QuestionLinkListViewModel>();
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.Qext_Question_ID into grp
select grp.FirstOrDefault();
foreach (var item in query.ToList())
{
var queryLang = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where r.Qext_Question_ID == item.r.Qext_Question_ID
select s;
if (queryLang.Count() == 1)
{
viewmodel.Add(new QuestionLinkListViewModel()
{
Survey_ID = Survey_ID,
Question_ID = item.r.Qext_Question_ID,
QuestionText = item.r.Qext_Text,
Languages = item.r.Qext_Language,
Languages2 = " "
});
}
else if(queryLang.Count() == 2)
{
viewmodel.Add(new QuestionLinkListViewModel()
{
Survey_ID = Survey_ID,
Question_ID = item.r.Qext_Question_ID,
QuestionText = item.r.Qext_Text,
Languages = "ENG",
Languages2 = "GER"
});
}
}
return PartialView(viewmodel);
}