0

我正在尝试与这个ASP.NET MVC 使用两个输入和 Html.BeginForm问题描述的相同,但有足够的差异,我真的不知道如何将它应用到我的项目中:

我有一个包含 3 个下拉列表的视图(个人资料列表、已连接的薪水列表和未连接的薪水列表)

看起来像这样:

  <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>

正如您在上面看到的,当我更改配置文件列表中的元素时,我有提交表单并调用填充我的“已连接薪金表”的以下操作结果的脚本代码。

  [HttpGet]
    public ActionResult GetConnectedSalaries(int Profiles = -1)
    {
        Model.SalaryGroups = AdminManager.GetConnectedSalaries(Profiles);
        ViewBag.Salaries = new SelectList(Model.SalaryGroups, "Id", "SalaryName", "Description");

        return (Index());
    } 

我想做的事:

当我在配置文件列表中选择一个元素时,我想调用 2 个 actionresults,一个我在上面显示的,另一个将流行我的第三个列表,其中包含“未连接的薪水”。第二次行动结果:

 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。我阅读了上面链接的问题,但不知道如何将其应用到我的项目中,或者是否可以这样做。

如果需要更多信息,请询问,我会尽力提供。

谢谢!

4

1 回答 1

0

我非常确定做到这一点的最佳方法是有两个 actionresults 我完全看不到我可以从同一个 actionresult 调用我的两个数据库方法并填充两个列表的解决方案。

简单的解决方案:

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

对不起,如果我浪费了您的时间:(但希望这会帮助其他尝试相同的人。

但是,如果有一种方法可以在两个 actionresults 中执行此操作,那么我会将问题保留为开放式,看看它是如何完成的会很有趣。

于 2013-03-01T11:01:10.473 回答