1、引入必要的文件

    <script src="@Url.Content("~/Scripts/jquery-1.7..min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

2、Ajax From & Ajax Valida

<h2>AjaxForm</h2>
<!--两种loading 方式,一种是 ajax form 提供的 LoadingElementId(loading 对象起始设置display:none;),另外一种是在 onBegin 开启Loading效果,然后再OnComplete关闭Loading效果-->
@using (Ajax.BeginForm("ajax", "home", new AjaxOptions() { LoadingElementId = "loading", UpdateTargetId = "ajaxResult", OnComplete = "return OnComplete()", OnBegin = "return OnBegin();", Confirm = "要提交?", OnFailure = "return OnFailure();", OnSuccess = "OnSuccess" }))
{
<text>Name:</text><input type="text" id="name" name="name" data-val="true" data-val-required="Name 是必填项." />
@*<span class="field-validation-valid" data-valmsg-for="name" data-valmsg-replace="true" style="font-size:large; color:blue;"></span>*@
@Html.Partial("_ValidationError","name") <br />
<text>Age:</text><input type="text" id="age" name="age" data-val="true" data-val-required="Age 是必填项." data-val-digits="输入合法数字."/>
@Html.Partial("_ValidationError","age")
<br />
<text>Email:</text><input type="text" id="email" name="email" data-val="true" data-val-email="Email格式不正确."/>
@Html.Partial("_ValidationError","email")
<br />
<input type="submit" value="Ajax提交" />
<br /> }
<div id="ajaxResult">
</div>
<div id="loading" style="display:none;">
正在请求,请稍后..........
</div>
<script> function OnComplete() {
//alert("OnComplete 事件");
$("h2").html("AjaxForm");
}
function OnBegin() {
//alert("OnBegin 事件");
$("h2").html("请在请求,请稍后...")
}
function OnFailure() {
alert("OnFailure 事件 - ajax请求失败");
}
function OnSuccess(data) {
//alert("ajax 请求成功返回的数据:" + data);
} </script>

3、Controllers

        public ActionResult AjaxForm()
{
return View();
} [HttpPost]
public ActionResult ajax(string name, string age)
{
//throw new Exception("内部抛出了异常");
return PartialView("AjaxFromControl", new AjaxModel() { Name = name, Age = age});
}

MVC Ajax Form & Ajax Valida(笔记)的更多相关文章

  1. bootstrap-data-target触发模态弹出窗元素的data使用 data-toggle与data-target的作用 深入ASP.NET MVC之九:Ajax支持 Asp.Net MVC4系列--进阶篇之AJAX

    bootstrap-data-target触发模态弹出窗元素的data使用 时间:2017-05-27 14:22:34      阅读:4479      评论:0      收藏:0      [ ...

  2. [转]深入ASP.NET MVC之九:Ajax支持

    本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/22/2824384.html 目前前端页面和服务端进行Ajax交互大多采用的都是jQuery ...

  3. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  4. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  5. ASP.NET MVC之Unobtrusive Ajax(五)

    前言 这一节我们来讲讲Unobtrusive中的Ajax提交,大部分情况下我们是利用JQuery来进行Ajax请求,当然利用JQuery来进行表单Ajax请求也不例外,但是相对于Unobtrusive ...

  6. ASP.NET MVC学习之Ajax(完结)

    一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...

  7. Django基础——Form&Ajax篇

    一 Form 在实际的生产环境中,登录和注册时用户提交的数据浏览器端都会使用JavaScript来进行验证(比如验证输入是否为空以及输入是否合法),但是浏览器可能会禁用JavaScirpt,同时也有人 ...

  8. MVC4 AspNet MVC下的Ajax / 使用微软提供的Ajax请求脚本 [jquery.unobtrusive-ajax.min.js]

    源码参考:链接:http://pan.baidu.com/s/1pKhHHMj  密码:mkr4 1:新建-->项目-->Web-->ASP.NET MVC 4 Web 应用程序.命 ...

  9. AJAX Form Submit Framework 原生js post json

    https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest <!doctype ht ...

随机推荐

  1. MT【141】逆用特征根法

    (清华大学THUSSAT) 已知 \(a=\left( \dfrac{-1+\sqrt{5}}{2} \right)^{-10}+\left( \dfrac{-1-\sqrt{5}}{2} \righ ...

  2. 洛谷 P1199 三国游戏 解题报告

    P1199 三国游戏 题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有\(N\)位武将(\(N\)为 ...

  3. 用Gradle命令行编译Android工程

    在Android sdk 目录下的samples/android-21/ 文件夹下,任找一个工程,如果在命令行直接编译 可能会报这种错误:gradle buile.gradle FAILURE: Bu ...

  4. Android Progurad 代码混淆

    ref: ProGuard基础语法和打包配置.mdhttps://github.com/D-clock/Doc/blob/master/Android/Gradle/3_ProGuard%E5%9F% ...

  5. go递归打印指定目录下的所有文件及文件夹

    func treedir(fpath string){ // 获取fileinfo if finfo,err := os.Stat(fpath); err == nil { // 判断是不是目录 如果 ...

  6. nodejs调用脚本(python/shell)和系统命令

    每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/ch ...

  7. 「Vue」v-on修饰符

    修饰符stop阻止冒泡 --> <!-- <div id="myvue" @click="divc" class="d1" ...

  8. Ubuntu16.04.2安装Tensorflow

    安装aptitude $ sudo apt-get install aptitude 安装python-pip python-dev $ sudo aptitude install python-pi ...

  9. 6.redis的分布式锁

    https://www.cnblogs.com/linjiqin/p/8003838.html

  10. httpclient4.5 连接池的封装

    随着微服务的流行,服务之间的http调用越来越多,遇到的问题也比较多,写这边文章的目的也是将自己遇到的坑和解决方案跟大家分享 一.为什么要用Http连接池 1.降低延迟:如果不采用连接池,每次连接发起 ...