我在我的asp.net mvc3应用程序中使用@ Ajax.BeginForm()。 由于页面是紧密绑定的,因此它会在单击提交按钮时发送模型值。 我的要求是单击提交按钮,我需要使用一些逻辑填充表单外部的列表框,并将列表框中存在的Json值列表作为附加参数传递给控制器。 怎么做到这一点?
@using (Ajax.BeginForm("Controller_Method", "Controller_Name", new AjaxOptions { HttpMethod = "POST", OnSuccess = "SUCCESS" }))
{
}
<select id="listbx">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
单击提交按钮,我使用jQuery将项目添加到列表框中,并希望将所有项目作为json参数传递给控制器..
答案 0 :(得分:1)
在提交表单之前,您可以clone
隐藏div中表单内的选择框。
另外,不要忘记在选择列表中添加name
属性,否则不会将任何内容发布到控制器:
@using (Ajax.BeginForm("Controller_Method", "Controller_Name", new AjaxOptions { HttpMethod = "POST", OnSuccess = "SUCCESS", OnBegin = "beforeSend" }))
{
<div id="listBoxContainer" style="display:none;"></div>
}
<select id="listbx" name="listbox">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
然后实现beforeSend
回调以将selectbox克隆到表单中:
function beforeSend() {
$('#listBoxContainer').html($('#listbx').clone());
}