自己有服务器和域名怎么做网站,外汇交易平台,用户体验设计是什么,用php做网站出现的问题一.前言 通过上面的一番学习#xff0c;大家一定收获不少。但是总归会有一个结束的时候#xff0c;但是这个结束也意味着新的开始。 如果你是从事ASP.NET开发#xff0c;并且也使用了第三方控件#xff0c;那么一定会觉得ASP.NET开发ajax十分的简单#xff0c;而ASP.NET M…一.前言 通过上面的一番学习大家一定收获不少。但是总归会有一个结束的时候但是这个结束也意味着新的开始。 如果你是从事ASP.NET开发并且也使用了第三方控件那么一定会觉得ASP.NET开发ajax十分的简单而ASP.NET MVC学习到现在页面都是刷新的所以这节就是ASP.NET MVC的最后一节通过这节的学习我们将能够实现通过ajax提交表单下面我们开始继续学习。 二.准备工作 1、首先确保引用了以下js库在_Layout中 2、新建一个HomeController然后在其中写入如下代码 1 namespace MvcStudy.Controllers2 {3 public class HomeController : Controller4 {5 public ActionResult Index()6 {7 return View();8 }9
10 [HttpPost]
11 public ActionResult Index([Bind(Prefixname)]String reg)
12 {
13 return PartialView(Result, reg);
14 }
15 }
16 } View Code 3、在Views下新建一个Home文件夹并在其中新建一个Index视图同时在Views/Shared中新建一个Result视图到此为止准备工作完成了。 三.利用Ajax提交表单 首先我们打开刚才新建的Index视图然后在其中写入如下代码 1 {2 ViewBag.Title Index;3 AjaxOptions option new AjaxOptions4 {5 UpdateTargetId targetdiv6 };7 }8 9 using (Ajax.BeginForm(option))
10 {
11 div idtargetdiv
12 /div
13 Html.TextBox(name)
14 div
15 input typesubmit 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 {2 ViewBag.Title Index;3 AjaxOptions option new AjaxOptions4 {5 UpdateTargetId targetdiv,6 LoadingElementId wait,7 LoadingElementDuration 10008 };9 }
10
11 div idwait styledisplay:none
12 耐心等待会...
13 /div
14 using (Ajax.BeginForm(option))
15 {
16 div idtargetdiv
17 /div
18 Html.TextBox(name)
19 div
20 input typesubmit value注册 /
21 /div
22 } View Code 我们通过LoadingElementId来设置加载的标签而LoadingElementDuration则表示动画持续的时间这里我们写了一个div用来呈现并且该div的display要设置为none这样我们重新打开页面再提交一次就可以看到加载中的效果了。 五.Ajax链接 很多时候并不总是需要提交表单来实现ajax也有很多仅仅只是通过点击按钮的方式来进行ajax请求下面我们就利用Ajax.ActionLink来实现我们只要在Index视图中的下面填上如下代码 1 Ajax.ActionLink(点我,Index,new {name oh no},new AjaxOptions{
2 UpdateTargetId targetdiv,
3 Confirm 确定吗,
4 HttpMethod Post
5 }); 这里就不介绍了因为和Html.ActionLink的用法十分类似唯一的区别就是多了一个AjaxOptions参数我们刷新页面。点击这个链接就可以看到效果了如果你想问按钮在哪呢这个问题似乎没有可问性不是有万能的CSS吗 六.Ajax回调 对于部分喜爱写javascript的读者来说上面这些无疑是灾难。这样你的javascript水平如何体现呢其实ASP.NET MVC自带的依然有很多问题所以这个时候我们可以监听它的过程从而可以更好的完成功能下面我们监听它的所有事件我们仍然是修改Index视图的代码 1 Ajax.ActionLink(点我,Index,new {name oh no},new AjaxOptions{2 UpdateTargetId targetdiv,3 Confirm 确定吗,4 HttpMethod Post,5 OnBegin onbegin,6 OnComplete oncomplete,7 OnFailure onfailure,8 OnSuccess onsuccess9 });
10
11 script typetext/javascript
12 function onbegin() {
13 console.log(开始啦);
14 }
15
16 function oncomplete(request, status) {
17 console.log(完成了好下班了);
18 }
19
20 function onfailure(request, error) {
21 console.log(报错了要加班了);
22 }
23
24 function onsuccess(data) {
25 console.log(改好了走人喽);
26 }
27 /script View Code 这里我们监听了所有的事件下面我们可以看到正确调用下的输出 当然个人认为ASP.NET MVC的ajax还是有点鸡肋用个backbone.js框架加上ASP.NET Web API基本上直接秒杀了当然对于简单的页面用用自带的还是蛮快捷的。 七.ASP.NET MVC系列所有链接 ASP.NET MVC学习之路由篇1 ASP.NET MVC学习之路由篇2 ASP.NET MVC学习之路由篇3 ASP.NET MVC学习之过滤器篇1 ASP.NET MVC学习之过滤器篇2 ASP.NET MVC学习之控制器篇扩展性 ASP.NET MVC学习之视图1 ASP.NET MVC学习之视图篇2 ASP.NET MVC学习之模型模板篇 ASP.NET MVC学习之模型绑定1 ASP.NET MVC学习之模型绑定2 ASP.NET MVC学习之模型验证篇 转载于:https://www.cnblogs.com/yaozhenfa/p/asp_net_mvc_ajax.html