昨天,我介绍了我比较常用的ajax表单及文件的上传方法,MVC使用ajax方法提交表单(一)。
今天是另外一种,这次的方法是利用控件jquery.form.js,使用方法比较简单,需要注意的是只能传递表单,不支持图片和文件。
首先需要引入下面的js脚本。
1) 插件需要Jquery最低版本为v1.5
2) 插件提供了ajaxSubmit和ajaxForm两种表单提交方式,但不要对同一个表单同时使用两种方式。
<script src="../../Content/jquery.form.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate-vsdoc.js" type="text/javascript"></script>
下面是监听form表单提交事件(无论同步还是异步)
$(document).ready(function () {
var form = $("#form1");
form.submit(function () {
$.post(form.attr("action"),
form.serialize(),
function (json) {
var msg = json.options;
if (msg == "ok") {
alert("成功添加!");
window.location.href = '/Home/Index';
}
else if (msg == "no") {
alert("添加失败!");
}
},
"json");
return false;
});
});
后台接收代码
[HttpPost]
public ActionResult AjaxAddUser(FormCollection form, HttpPostedFileBase File1)
{
string name = form[“name”];
int age = int.Parse(form[“age”]);
DateTime date = System.DateTime.Now;
string path = form[“txt_src”]; ;
UserList u = new UserList();
u.name = name;
u.age = age;
u.jointime = date;
u.Url = path;
//添加,这个只是在内存上操作
db.UserList.AddObject(u);
//保存到数据库
int ac = 0;
string msg;
ac = db.SaveChanges();
if (ac > 0)
{
msg = "ok";
}
else
{
msg = "no";
}
return Json(new { options = msg }, JsonRequestBehavior.AllowGet);
//return msg;
}