昨天,我介紹了我比較常用的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;
}