AJax技术

ASP.NET MVC学习之Ajax(完结) - y-z-f

字号+ 作者:H5之家 来源:H5之家 2017-06-14 18:01 我要评论( )

ASP.NET MVC学习之Ajax(完结) - y-z-f

通过上面的一番学习,大家一定收获不少。但是总归会有一个结束的时候,但是这个结束也意味着新的开始。

如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发ajax十分的简单,而ASP.NET MVC学习到现在页面都是刷新的,所以这节就是ASP.NET MVC的最后一节,通过这节的学习我们将能够实现通过ajax提交表单,下面我们开始继续学习。

1、首先确保引用了以下js库在_Layout中:

2、新建一个HomeController,然后在其中写入如下代码:

1 namespace MvcStudy.Controllers 2 { HomeController : Controller 4 { 5 public ActionResult Index() 6 { 7 return View(); 8 } 9 10 [HttpPost] )]String reg) 12 { , reg); 14 } 15 } 16 } View Code

3、在Views下新建一个Home文件夹,并在其中新建一个Index视图,同时在Views/Shared中新建一个Result视图,到此为止准备工作完成了。

首先我们打开刚才新建的Index视图,然后在其中写入如下代码:

1 @{ ; 3 AjaxOptions option = new AjaxOptions 4 { }; 7 } 8 9 @using (Ajax.BeginForm(option)) 10 { > 12 </div> ) 14 <div> value=/> 16 </div> 17 }

其中AjaxOptions同来设置ajax相关的参数,而Ajax.BeginForm则表示该表单采用ajax方式提交,其中AjaxOptions中的UpdateTargetId表示完成ajax请求之后内容的输出的容器。

打开Views/Shared下的Result视图,写入:

1 @{ 2 String text = (string)Model; 3 } 4 5 @text

作为简单的示例,笔者直接输出了Model。

然后我们就可以F5运行,在文本框中输入值,最后可以发现页面并没有刷新。但是内容却从指定的div中呈现了,这里的原理很简单,ASP.NET MVC就是利用jquery中的ajax来将表单中的参数提交给指定的动作,然后由这个动作直接返回一段html代码,最后在从指定的id的容器中输出。

如今很多网站都会在进行ajax请求过程中呈现一段表示加载中的标记,而ASP.NET MVC中的ajax也提供给我们这个功能,下面我们就修改Index视图:

1 @{ ; 3 AjaxOptions option = new AjaxOptions 4 { , , 7 LoadingElementDuration = 1000 8 }; 9 } style=> 12 耐心等待会... 13 </div> 14 @using (Ajax.BeginForm(option)) 15 { > 17 </div> ) 19 <div> value=/> 21 </div> 22 } View Code

我们通过LoadingElementId来设置加载的标签而LoadingElementDuration则表示动画持续的时间,这里我们写了一个div用来呈现,并且该div的display要设置为none,这样我们重新打开页面再提交一次,就可以看到加载中的效果了。

很多时候并不总是需要提交表单来实现ajax,也有很多仅仅只是通过点击按钮的方式来进行ajax请求,下面我们就利用Ajax.ActionLink来实现,我们只要在Index视图中的下面填上如下代码:

,,},new AjaxOptions{ , , });

这里就不介绍了,因为和Html.ActionLink的用法十分类似,唯一的区别就是多了一个AjaxOptions参数,我们刷新页面。点击这个链接就可以看到效果了,如果你想问按钮在哪呢,这个问题似乎没有可问性,不是有万能的CSS吗?

对于部分喜爱写javascript的读者来说,上面这些无疑是灾难。这样你的javascript水平如何体现呢,其实ASP.NET MVC自带的依然有很多问题,所以这个时候我们可以监听它的过程,从而可以更好的完成功能,下面我们监听它的所有事件,我们仍然是修改Index视图的代码:

,,},new AjaxOptions{ , , , , , , }); > 12 function onbegin() { ); 14 } 15 16 function oncomplete(request, status) { ); 18 } 19 20 function onfailure(request, error) { ); 22 } 23 24 function onsuccess(data) { ); 26 } 27 </script> View Code

这里我们监听了所有的事件,下面我们可以看到正确调用下的输出:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 求教学习ajax

    求教学习ajax

    2017-06-14 18:00

  • 【原创】Ajax的用法总结

    【原创】Ajax的用法总结

    2017-06-14 11:00

  • ajax+php中文乱码的解决

    ajax+php中文乱码的解决

    2017-06-11 17:05

  • Ajax 浏览器支持

    Ajax 浏览器支持

    2017-06-11 11:00

网友点评