今天学习了关于MVC3框架下的Jquery异步请求函数之$.post()的学习,得到了一些心得,当然,自认为还只是一些皮毛,但是值得留下足迹。直接上代码:
前端:
引用Jquery库<script src="@Url.Content("~/Scripts/jquery.1.5.1.min.js")" type="text/javascript"></script>-------必须的这个引用
$(function () {
$("#post").click(function () {
$.post("/home/TestMVC", { i: 2, j: 2 }, function (data, textStatus) {
if (textStatus=="success") {
alert(data.sname);//sname:看后台调用部分,相同的
}
else {
alert(data.sname);
}
});
});
});
后台调用部分:
public JsonResult TestMVC(int i, int j)
{
int I = 0;
List<student> list = new List<student>();
for (int k = 0; k < 10; k++)
{
student sd = new student() { sname = "aaa" + k.ToString() + j.ToString(), ID = k, Grade = k * 10 };
list.Add(sd);
}
var stu = (from m in list
where m.ID == i
select m
).FirstOrDefault();
JsonResult J = new JsonResult();
J.Data = stu;
return J;
}
融会贯通:
先说这个$.post()吧,这个是和他的家族函数(我暂时是这样说的)$.ajax(),$.get(),$.load(),$.getJSON()这些都有点类似,但是具体的又有不同的用法,具体的我后面再说。
又先说这个上面代码部分的后台引用,stu是一个list的一个数据对集中的一个数据对,然后赋给JsonResult定义的J对象。我们可以想象,这个对象对集可以是我们从数据库中读取出来的,那不就直接联系到了ado.net了,以后可以跨数据库了,或者XML文档,等等都行。
还是后台部分,我们直接这样写:
public JsonResult TestMVC(int i,int j)
{
JsonResult J = new JsonResult();
J.Data = "把一些字符串传过去就得了,就这样简单";
return J;
}
好了,以上部分在前台就可以把这个J.Data的内容放到页面中去了,很简单。如果要得到一个列表,直接把"J.Data = "把一些字符串传过去就得了,就这样简单";这个部分改成“<li>1.ddddddd</li><li>2.xxxxxxxxxxx</li>”;什么的就好了,前台做好接收就玩完了,代码如:
省略function前的部分,接着是function(data){$("#div > ul").html(data.Data);}就好了。
再说下那个前台部分,最主要的是这个{i:1,j:2}这个部分,就是传参数。$.post("/home/TestMVC", { i: 2, j: 2 }等同于:/home/TestMVC?i=2&j=2,只不过在Jquery中换了一种写法而已。当然,我们可以不传参数,那就省略这个部分变成了:
$.post("url",function(data){………………});省略了参数。
好了,今天就记录到这,接着我将就他的家族函数(我暂时是这样说的)$.ajax(),$.get(),$.load()的简单用法和融汇贯通一一呈上,敬请期待~~~~~~~~~