使用 jQuery ajax 来处理添加许多客人。
1) 带有模型弹出窗口 当您单击 Add Guest 按钮时,调用您的 Action 方法,该方法在模型对话框中返回 Guest for m(jQuery UI 对话框是此处使用的一个选项)。使用 ajax post call 保存数据。一个成功事件,将新的客人数据附加到客人的主要表格列表或仅使用 jquery load 重新加载该部分
2)页面内添加当您单击添加访客按钮时,在主表单本身中,显示表单(您可以通过多种方式从javascript动态创建输入框和保存按钮)。使用 jQuery ajax 帖子保存数据。以 json 格式发送数据。只要参数名称与您的 ViewModel 的属性名称匹配,您的操作方法就可以接受数据
您的 HTML 页面
<a href="#" id="addNew"> Add Guest</a>
<div id="divForm" style="display:none">
<input type="text" id="txtName" />
<input type="text" id="txtEmail" />
<input type="button" id="btnSaveGuest" value="Save"/>
</div>
<ul>
<div id="divGuests"></div>
在你的脚本中
$(function(){
//Show the hidden form
$("#addNew").click(function(){
$("#divForm").fadeIn(300);
});
//Save the new guest details
$("#btnSaveGuest").click(function() {
var name=$("#txtName").val();
var email=$("#txtEmail").val();
$.ajax({
url: '@Url.Action("SaveGuest","Guest")',
data: {Name: name, EmailAddress :email},
success: function(data) {
if(data=="true")
{
//Saved successfully.May be append to list of Guest
$("#divGuests").append("<p>"+name+"</p>");
}
else
{
//Error. Show msg to user
}
}
});
});
});
你保存的 Action 方法
[HttpPost]
public ActionResult SaveGuest(Guest objGuest)
{
try
{
// read the objGuest property values and Save to db
return "true";
}
catch(Exception e)
{
//Log error
return "false";
}
}
这是一个示例应用程序:http: //jsfiddle.net/Qzk3F/16/
(示例中的一些值是硬编码的)