我目前正在构建一个网站,我必须从一个Ajax.BeginForm
. 我通过使用一个额外的容器来容纳两个单独的目标来让它工作。如:
原始表格
@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,chk1 为空,而 sel2 为 0(选择选项中没有这样的值)。任何人都可以提供一些有关此原因的见解以及我如何解决它。先感谢您。