繁体   English   中英

按值分组并具有2个不同的值,并在Razor视图中显示

[英]group by value with 2 different value and show in Razor view

我有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>
}

我通过在查询中添加查询来修复它:

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);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM