2013-08-30 36 views
1

我目前正在建立一個網站,我必須從一個Ajax.BeginForm更新兩個單獨的目標。我通過使用額外的容器來容納兩個獨立的目標。如:如何訪問使用Ajax加載的partialview數據

  1. 原生形態

    @model Mod1 
    @using (Ajax.BeginForm("LoadData", new AjaxOptions{UpdateTargetID = "Div1"})) 
    { 
        <select id="sel1" name="sel1" onchange="$(this.form).submit"> 
        // ... 
        </select> 
    } 
    @using (Ajax.BeginForm("ProcessData", new AjaxOptions{UpdateTargetID = "Div2"})) 
    { 
        <div id="Div1"></div> 
        // ... 
        <input type="submit" value="GO!" /> 
    } 
    
  2. 代碼文件

    public ActionResult LoadData(int sel1) 
    { 
        // loading data from database 
        return PartialView(mod1); 
    } 
    
  3. 管窺

    @model Mod2 
    <select id="sel2" name="sel2"> 
        @foreach (var item in Model.SelectItems) 
        { 
        <option value="@item.Value">@item.Text</option> 
        } 
    </select> 
    
    @foreach (var item in Model.CheckBoxItems) 
    { 
        <label>@item.Text<input type="checkbox" id="chk1" name="chk1" value="@item.Value"></label> 
    } 
    

對於處理方法,我曾嘗試:

public ProcessData(Mod1 mod1, string[] chk1, int sel2) 

但是我無法檢索或者CHK1或SEL2在表單提交的值。在調試模式下檢查chk1和sel2,當sel2爲0時,chk1爲空(在選項中沒有這樣的值)。任何人都可以提供一些洞察這個原因,也可以解決它。先謝謝你。

回答

0

如果我正確地理解了你,你可以做你想要的y在同一個表單上有兩個提交按鈕,每個按鈕都調用一個單獨的操作方法。這樣每個提交按鈕將有權訪問表單中的所有字段。對於如何才能做到這一點看我的答案在這裏詳細的解釋:

How to use ajax link instead of submit button for form?

編輯

在迴應評論:操作方法LoadData應該返回一個包含其他兩個局部視圖控制和擁有整個開始包括在它的形式:

@using (Ajax.BeginForm("LoadData", new AjaxOptions{ 
               UpdateTargetID = "Div1", 
               InsertionMode = InsertionMode.Replace 
                })) 
{ 
    <select id="sel1" name="sel1" onchange="$(this.form).submit"> 
    // ... 
    </select> 
} 
<div id="Div1"> 
</div> 
<div id="Div2"> 
</div> 

移動這對另一局部視圖:

@using (Ajax.BeginForm("ProcessData", new AjaxOptions{UpdateTargetID = "Div2"})) 
    { 

     // ... 
     <input type="submit" value="GO!" /> 
    } 
+0

不完全是我想要的。我的意圖是通過從DropDownList中選擇一個值。包含在div中的另一個DropDownList和CheckBoxes將使用值進行更新。用戶將隨後選擇/檢查div中的選項並提交表單。然而,我無法在任何字段中訪問提交的值,因爲它們是0(對於int字段)和null(對於字符串[]字段)。 –

+0

提交表單時,我仍然收到複選框的空引用。使用int []或字符串[]並不能解決這種情況... –

+0

你能發佈更新的cshtm文件嗎? – JTMon

相關問題