好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Ajax在MVC中的应用

Ajax在MVC中的应用

 我们做任何系统都少不了前后台数据的交互,在PHP中,我们基本不会遇到前后台数据交互的问题,纯PHP就可以实现了。但是在.net里面我们通常要借助Ajax技术。通过这段时间的学习,这里也将jquey的Ajax技术应用到MVC框架中,与大家分享。同时时间有限,不能将各个场景都一一例举。

1 jQuery中的Ajax复习

“工欲善其事,必先利其器。”这里简单介绍一下jQuery中的Ajax中常用的方法。

1.1 $.ajax()方法

$.ajax()方法是jQuery最底层的Ajax实现。

其结构为:

该方法只有一个参数,但在这个对象里包含了$.ajax()所需的请求设置和回调函数等信息。

参数以key/value形式存在,所有参数都是可选的,常用参数如下表:

1.2  $.get()方法

$.get()方法使用GET方式来进行异步请求

它的结构:

$.get()方法参数解释如下:

1.3  $.post()方法

它与$.get()方法的结构和使用方法都相同,不过它们之间仍然有差别,这里不解释(需要的朋友请查阅相关资料进一步了解)

1.4 $.getJSON

方法定义:jQuery.getJSON( url, data, callback )

通过get请求得到json数据

·url用于提供json数据的地址页

·data(可选)用于传送到服务器的键值对

·callback(可选)回调函数,json数据请求成功后的处理函数

复习了jquery的Ajax之后我们就可以开始了。

2 实例

2.1 $.ajax()方法

照例,我们先在建立一个控制器命名为HomeController

同时视图的Home目录下新建一个名为Index的视图,

结构如下:

视图设计:

View Code

        <  tr  > 
< td >
< input id ="Access" type ="button" value ="Access" />
</ td >
< td >
< div id ="browser" >
</ div >
</ td >
</ tr >

复制代码

脚本:

View Code

 $("#Access").click( function  () {
$.ajax({
type: 'GET',
url: '/Home/Get_Page',
success: function (data) {
$("#browser").text(data);
}
});
});

复制代码

控制器中Action:

View Code

      //  返回数据  
public void Get_Page()
{
List< string > booklist = new List< string >();
booklist.Add( " C# " );
booklist.Add( " J# " );
booklist.Add( " jQuery " );
booklist.Add( " JavaScript " );
booklist.Add( " PHP " );
foreach ( string str in booklist)
{
Response.Write(str+ " <br> " );
}
}

复制代码

效果:


 

2.2 $.post()

视图设计:

        <  tr  > 
< td >
< input id ="btn" type ="submit" value ="发送数据" />
</ td >
< td >
< div id ="result" >
</ div >
</ td >
</ tr >

复制代码

脚本:

View Code

        $("#btn").click( function  () {
$.post('/Home/Page_To',
{ text: 'Lucky Hu', number: 24 },
function (data) {
alert('Your data have been saved!');
$("#result").text(data); // 用div接收返回的数
});
});

复制代码

控制器中Action:

View Code

  //  接收数据  
public void Page_To()
{
string name = Request[ " text " ]; //
string age = Request[ " number " ];
Response.Write( " 返回结果是:姓名: " +name+ " ,年龄: " +age); // 返回到前台数据
}

复制代码


效果:

2.3 $.getJSON()

视图设计:

View Code

 <  input   id  ="studentInFo"   type  ="button"   value  ="获取学生信息"   /> 
< table id ="Student" >
< thead >
< tr >
< td >
姓名
</ td >
< td >
年龄
</ td >
< td >
性别
</ td >
</ tr >
</ thead >
< tbody >
</ tbody >
</ table >

复制代码

脚本:

View Code

   //  异步请求JSON格式数据  
$("#studentInFo").click( function () {
$.getJSON("/Home/Get_Json",
function (data) {
/* 遍历 */
$.each(data,
function (index, p) {
var html = "<tr><td>" + p.Name + "</td>" + "<td>" + p.Age + "</td>" + "<td>" + p.Sex + "</td>" + "</tr>";
$("#Student tbody").append(html);
// alert(html);
})
});
})

复制代码

控制器中Action:

View Code

  //  构造Json格式数据
// 异步请求JSON 数据
public JsonResult Get_Json()
{
List<Student> slist = new List<Student>();

DataTable dt = CreateData();
for ( int i = 0 ; i < dt.Rows.Count;i++ )
{
Student s = new Student();

s.Name = dt.Rows[i][ " name " ].ToString();
s.Age = int .Parse(dt.Rows[i][ " age " ].ToString());
s.Sex = dt.Rows[i][ " sex " ].ToString();

if (s != null )
{
slist.Add(s);
}
}

// JsonRequestBehavior.AllowGet 表示允许以GET方式访问,
// 最后在页面中用getJSON()方法获取
return Json(slist,JsonRequestBehavior.AllowGet);
}

// 构造测试数据
public DataTable CreateData()
{
DataTable dt = new DataTable();
dt.Columns.Add( " name " , typeof ( string ));
dt.Columns.Add( " age " , typeof ( int ));
dt.Columns.Add( " sex " , typeof ( string ));

for ( int i = 0 ; i < 10 ;i++ )
{
dt.Rows.Add( new object [] { " lucky " +i, " 2 " +i, " 男 " });
dt.AcceptChanges();
}
return dt;
}

复制代码

这里为了更加真实的展现这场景,添加了一个model实体,命名为Student

效果:

3 总结

      jquery的Ajax在.NET数据交互中的应用很广泛,这里只是很常见的一些用法,实际中应用更加灵活多变。
平日由于需求的局限,自己的应用并没有达到一定深度,我想随着新项目,新需求的出现,将还会有更加深入的理解和应用。

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Ajax在MVC中的应用的详细内容...

  阅读:46次