2013-03-01 68 views
0

我想,因爲這ASP.NET MVC Using two inputs with Html.BeginForm問題描述但有足夠的差異,我真的不知道藿到其應用在我的項目做相同的:ASP.NET MVC如何在Html.BeginForm中使用兩個ActionResults?

我已經連接有3個dropdownlists(ProfileList文件的視圖, 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用於填充腳本代碼我的「連接ed薪金錶「。

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

     return (Index()); 
    } 

我wan't做:

當我選擇在ProfileList文件一個元素我想打電話給2個actionresults,我在上面所示的一個,第二個,將populare我第三份名單將包含「不相關的薪酬」。 二的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做到這一點。 我讀過上面鏈接的問題,但不知道如何將其應用到我的項目中,或者甚至可以執行相同的操作。

如果需要更多信息,我會盡我所能提供。

謝謝!

+1

爲什麼不把這兩個動作的邏輯放在一個動作中,因爲技術上只有一個動作發生在客戶端,雖然你想返回兩個結果。 – 2013-03-01 10:59:13

回答

0

我很確定最好的辦法是有兩個動作結果,我總是盲目的解決,我可以從同一個actionresult調用我的數據庫方法並填充這兩個列表。

簡單soloution:

[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即可。我將把問題留在開放狀態,看看它是如何實現的將是有趣的。

相關問題