Asp.net mvc } } } 返回列表; }

Asp.net mvc } } } 返回列表; },asp.net-mvc,url-parameters,html-select,Asp.net Mvc,Url Parameters,Html Select,以及“PageDomaines”视图: @model IEnumerable @使用SUIVI_DWH.Helpers @{ ViewBag.Title=“PageDomaines”; } @ViewData[“CR”] @ViewData[“应用程序”] @ViewData[“DDL”] @使用(Html.BeginForm(“PageDomaines”、“Suivi”)) { @DropDownList(“DDL”,new SelectList(new[]{“MMCR”,“MMCL”,“MM

以及“PageDomaines”视图:

@model IEnumerable
@使用SUIVI_DWH.Helpers
@{
ViewBag.Title=“PageDomaines”;
}
@ViewData[“CR”]
@ViewData[“应用程序”]
@ViewData[“DDL”]
@使用(Html.BeginForm(“PageDomaines”、“Suivi”))
{
@DropDownList(“DDL”,new SelectList(new[]{“MMCR”,“MMCL”,“MMCO”,“MMSE”,“MMAS”}),“--Select one--”,new{onchange=“this.form.submit();”})
}
CD_TRT
LB_TRT
周期
身材
@foreach(模型中的var项目)
{
@项目1.CD\u TRT
@项目1.LB_TRT
@项目.周期e
@如果(item.STATUT==null)
{
}
否则,如果(item.STATUT==“KO”)
{
}
否则如果(item.STATUT==“确定”)
{
}
否则,如果(item.STATUT==“EN延迟”)
{
}
否则如果(item.STATUT==“非初始”)
{
}
否则如果(item.STATUT==“当然”)
{
}
}
我希望我没有忘记什么


你对解决这个问题有什么建议吗?

由于篇幅限制,我将在这里回答:)。如果我理解正确的话,在索引页面上,表格在左侧,当您单击ESPAS中心Est时,它打开了一个新页面,表格在右侧,列出了CE ESPAS。现在在顶部有一个下拉列表,当用户选择其中一个值时,VarCR和VarAppli为空?(这几乎是我离开这里的时候了,所以如果我没有把它做好,我会责怪它太累了(:)

如果是这样的话,您需要向我们展示下拉列表的代码,但在此之前,我认为您应该考虑让用户通过在表格中单击或至少勾选复选框/按下每行开头或结尾的按钮来进行选择。我不希望让用户在eve时通过两种不同的方法进行选择rything其他的看起来都一样,但那只是我。如果您从表中选择,您可以让URL包含CE和Appli的值,就像在第一个表中一样,如果您仍然需要下拉列表,您必须使用选择列表查看,因为它可以帮助您获得显示值和“支持”值,您可以在其中存储其他信息,如CE和Appli值。您可以在此处查看:


希望这能回答您的问题,如果不清楚,请告诉我,这在我的头脑中是清楚的,但可能是杂乱无章的:)

我没有足够的空间,所以我将在这里回答

是的,大致是这样,当用户单击第一个表(左侧)中ESPAS CE的状态时,两个参数(CR和Appli,在本例中,CR=CE和Appli=ESPAS)通过以下链接从视图传递到我的控制器“SuiviController”的操作的URL:

然后,我的操作获取两个参数:CR和Appli,以便在where子句中使用此参数进行查询(查询在我的第一篇文章中)。我的查询结果将返回到我的操作视图,并在第二页(右侧)显示第二个表以及下拉列表。 另外,当用户位于第二页时,URL如下所示:

http://localhost:56672/Suivi/PageDomaines?CR=CE%20%20%20%20%20%20%20%20&Appli=ESPAS
但当用户在下拉列表中选择一个值时,页面将刷新,我丢失了参数,url将变为:

http://localhost:56672/Suivi/PageDomaines
当我在下拉列表中选择一个值时,我丢失了从第一页传递的参数,我不知道如何保存它们

下拉列表的代码显示在第一篇文章中,但如下所示:

    @using (Html.BeginForm("PageDomaines", "Suivi"))
{
    @Html.DropDownList("DDL", new SelectList(new[] { "MMCR", "MMCL", "MMCO", "MMSE", "MMAS" }), "--Select one--", new { onchange = "this.form.submit();" })
}
我明白了吗


对于第二段中提到的点,我不想给用户这样的选择,对于我的问题,我使用了一个带有简单选择的下拉列表,只是为了在第二个表中显示CD_TRT等于所选值的所有行,因此如果我选择MMCL,将显示以下行:MMCL/Client-DMCL/20121001/状态。 但这并不是我最后想要的下拉列表。最终的下拉列表将是一个列表,用户可以在其中根据以下格式选择以日期为函数执行的作业:2012年1月、2012年2月,。。。或其他应用(例如BO)2012年1月25日、2012年1月26日等。。。 将选择的值取决于在第一页上选择的应用程序

我想就这些,如果你有任何疑问,请告诉我:)


真的,谢谢你的帮助。

是的,我在另一个论坛的帮助下找到了解决方案

这真的很简单,我唯一需要补充的是在Begin中,我必须补充以下内容:

@using (Html.BeginForm("PageDomaines", "Suivi", new { CR = @ViewData["CR"], Appli = @ViewData["Appli"] }))
在BeginForm中,我有,按顺序,我的操作,我的控制器,以及我想要传递给我的控制器的参数和它们的值


在我的研究过程中,我认为这是一个解决方案,但我不知道如何编写代码。使用正确的语法,一切都很顺利。

如果我理解正确,新页面应该在“查询”中显示“Suivi”列表,您是否检查了“查询”是否确实包含结果(抱歉,但删除了最明显的第一个(:)顺便提一下:为什么不使用包含Suivi、Appli、CR和DDL列表的viewModel,就像您不必使用viewData一样?我已经检查了我的查询是否包含正确的结果,事实就是如此。问题在于参数CR和
http://localhost:56672/Suivi/PageDomaines
    @using (Html.BeginForm("PageDomaines", "Suivi"))
{
    @Html.DropDownList("DDL", new SelectList(new[] { "MMCR", "MMCL", "MMCO", "MMSE", "MMAS" }), "--Select one--", new { onchange = "this.form.submit();" })
}
@using (Html.BeginForm("PageDomaines", "Suivi", new { CR = @ViewData["CR"], Appli = @ViewData["Appli"] }))