1
我目前正在建立一個網站,我必須從一個Ajax.BeginForm
更新兩個單獨的目標。我通過使用額外的容器來容納兩個獨立的目標。如:如何訪問使用Ajax加載的partialview數據
原生形態
@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!" /> }
代碼文件
public ActionResult LoadData(int sel1) { // loading data from database return PartialView(mod1); }
管窺
@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爲空(在選項中沒有這樣的值)。任何人都可以提供一些洞察這個原因,也可以解決它。先謝謝你。
不完全是我想要的。我的意圖是通過從DropDownList中選擇一個值。包含在div中的另一個DropDownList和CheckBoxes將使用值進行更新。用戶將隨後選擇/檢查div中的選項並提交表單。然而,我無法在任何字段中訪問提交的值,因爲它們是0(對於int字段)和null(對於字符串[]字段)。 –
提交表單時,我仍然收到複選框的空引用。使用int []或字符串[]並不能解決這種情況... –
你能發佈更新的cshtm文件嗎? – JTMon