我正在尝试像ASP.NET MVC Using two inputs with Html.BeginForm这个问题所描述的那样做,但有足够的不同,我真的不知道hwo将它应用到我的项目中:
我有一个包含3个下拉列表的视图(配置文件列表,连接的salarylist和未连接的salarylist)
看起来像这样:
<div class="row bgwhite">
@using (Html.BeginForm("GetConnectedSalaries", "KumaAdmin", FormMethod.Get, new { Id = "ProfileListForm" }))
{
<div class="four columns list list1">
@Html.DropDownList("Profiles", (SelectList) ViewBag.Profiles, "--Välj profilgrupp--",
new
{
//onchange = "$('#ProfileListForm')[0].submit();"
// Submits everytime a new element in the list is chosen
onchange = "document.getElementById('ProfileListForm').submit();"
})
</div>
}
@using (Html.BeginForm("Index", "KumaAdmin", FormMethod.Get, new { Id = "SalaryListForm" }))
{
<div class="four columns list list2" style="margin-top:-19px;">
@Html.DropDownList("Salaries", (SelectList) ViewBag.Salaries, "--Kopplade LöneGrupper--")
</div>
}
@using (Html.BeginForm("GetNOTConnectedSalaries", "KumaAdmin", FormMethod.Get, new { Id = "NotConSalaryListForm" }))
{
<div class="four columns list list2" style="margin-top:-19px;">
@Html.DropDownList("Salaries", (SelectList)ViewBag.NotConSalaries, "--Ej Kopplade LöneGrupper--")
<input style="float: left;" type="submit" value="Knyt" />
</div>
}
</div>
正如您在上面看到的那样,当我更改元素时,我会在配置文件列表中找到提交表单的脚本代码,并调用以下的actionresult来填充我的“连接的salarylist”。
[HttpGet]
public ActionResult GetConnectedSalaries(int Profiles = -1)
{
Model.SalaryGroups = AdminManager.GetConnectedSalaries(Profiles);
ViewBag.Salaries = new SelectList(Model.SalaryGroups, "Id", "SalaryName", "Description");
return (Index());
}
我不想做的事情:
当我在个人资料列表中选择一个元素时,我想调用2个动作结果,我上面显示的那个,第二个将推广我的第三个列表,其中包含“未连接的工资”。 第二个Actionresult:
public ActionResult GetNOTConnectedSalaries(int Profiles = -1)
{
Model.SalaryGroups = AdminManager.GetNOTConnectedSalaries(Profiles);
ViewBag.NotConSalaries = new SelectList(Model.NotConSalaryGroups, "Id", "SalaryName", "Description");
return (Index());
}
我不想用AJAX / JSON,严格意义上的MVC来做这件事。 我阅读了上面链接的问题,但不知道如何将其应用到我的项目中,或者甚至可以做同样的事情。
如果需要更多信息,我会尽力提供。
谢谢!
答案 0 :(得分:0)
我非常确定这样做的最好方法是有两个动作结果,我完全不知道我可以从同一个actionresult调用我的db方法并填充两个列表。
简单的解决方案:
[HttpGet]
public ActionResult GetSalaries(int Profiles = -1)
{
Model.SalaryGroups = AdminManager.GetConnectedSalaries(Profiles);
ViewBag.Salaries = new SelectList(Model.SalaryGroups, "Id", "SalaryName", "Description");
Model.NotConSalaryGroups = AdminManager.GetNOTConnectedSalaries(Profiles);
ViewBag.NotConSalaries = new SelectList(Model.NotConSalaryGroups, "Id", "SalaryName", "Description");
return (Index());
}
对不起,如果我浪费你的时间:(但希望这会帮助其他尝试相同的人。
然而,如果有两种方法可以在两个动作结果中执行此操作,那么我将把问题保持为开放状态,看看它是如何完成的将会很有趣。