0

私はこのASP.NET MVC Using two input with Html.BeginForm questionの説明と同じことをしようとしていますが、プロジェクトに適用する方法が本当にわからないほどの違いがあります:

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>

上記のように、プロファイル リストの要素を変更すると、フォームを送信し、「接続された給与リスト」に入力する次の actionresult を呼び出すスクリプト コードがあります。

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

        return (Index());
    } 

私がしたいこと:

profilelist で要素を選択したとき、2 つの actionresults を呼び出したいと思います。上に示したものと、「接続されていない給与」を含む 3 番目のリストを普及させる 2 つ目のものです。2 番目のアクションの結果:

 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

これを行う最善の方法は、2 つの actionresult を持つことであると確信していたので、同じ 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());
    }

時間を無駄にして申し訳ありません:(しかし、これが同じことを試みる他の人の助けになることを願っています.

ただし、2 つのアクション結果でこれを行う方法がある場合は、質問を未解決のままにします。それがどのように行われるかを見るのは興味深いでしょう。

于 2013-03-01T11:01:10.473 に答える