MVC3 学习笔记 之(ajax表单)
mvc 提供了一种ajax提交表单的方式。与普通表单不同的是,它是一个异步表单。
在开始使用之前,需要引用以下文件:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
下面做了一个例子实现按姓名关键字查询列表。
页面代码:
<script type="text/javascript">
function searchSuccess(result) {
alert("查询成功!返回结果是:\n\n" + result);
}
</script>
@using (Ajax.BeginForm("SearchList", "Account", null, new AjaxOptions
{
InsertionMode = InsertionMode.Replace, //插入模式
HttpMethod = "GET",
OnFailure = "", //失败调用函数
OnBegin = "", //开始调用之前
OnComplete = "", //调用成功之后
OnSuccess = "searchSuccess", //成功调用函数
LoadingElementId = "ajax-loader", //加载中元素ID
UpdateTargetId = "searchresults" //更新元素ID
}))
{
<input type="text" name="queryString" />
<input type="submit" value="查询" />
<img id="ajax-loader" src="@Url.Content("~/Content/Images/ajax-loader.gif")" style="display:none" />
<div id="searchresults">
</div>
}
这里可以不必指定OnSuccess参数,因为指定的InsertionMode和UpdateTargetId参数会自动更新匹配的元素。
当然,这需要在控制器中返回上下文或视图。
CS代码:
public ActionResult SearchList(string queryString)
{
List<string> resultList = new List<string>();
resultList.Add("张三");
resultList.Add("李四");
resultList.Add("王五");
resultList.Add("赵六");
resultList.Add("张一");
resultList.Add("张二");
var result = resultList.Where(e => e.Contains(queryString)).ToArray();
return Content(string.Join("<br/>", result));
}
这里通过关键字查询姓名列表并返回一个上下文。
页面效果:
当然也可以返回其它格式(如Json字符串)。
页面代码:
<script type="text/javascript">
function searchSuccess(rs) {
if (rs.success) {
var html = "";
for (var i in rs.result) {
html += rs.result[i].Name + " " + rs.result[i].Age + " " + rs.result[i].Height + "<br/>";
}
$("#searchresults").html(html);
}
}
</script>
@using (Ajax.BeginForm("SearchJson", "Account", null, new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "searchSuccess", //成功调用函数
LoadingElementId = "ajax-loader", //加载中元素ID
}))
{
<input type="text" name="queryString" />
<input type="submit" value="查询" />
<img id="ajax-loader" src="@Url.Content("~/Content/Images/ajax-loader.gif")" style="display:none" />
<div id="searchresults">
</div>
}
为了防止页面缓存,这里改用了POST的请求方式。成功时调用searchSuccess方法处理返回结果。
CS代码:
public JsonResult SearchJson(string queryString)
{
Dictionary<string, Person> dt = new Dictionary<string, Person>();
dt.Add("张三", new Person { Name = "张三", Age = , Height = 1.75 });
dt.Add("李四", new Person { Name = "李四", Age = , Height = 1.72 });
dt.Add("王五", new Person { Name = "王五", Age = , Height = 1.82 });
dt.Add("赵六", new Person { Name = "赵六", Age = , Height = 1.65 });
dt.Add("张一", new Person { Name = "张一", Age = , Height = 1.74 });
dt.Add("张二", new Person { Name = "张二", Age = , Height = 1.77 });
Hashtable ht = new Hashtable();
ht.Add("success", true);
ht.Add("result", dt.Where(e => e.Value.Name.Contains(queryString))
.ToDictionary(e => e.Key, e => e.Value));
return Json(ht, JsonRequestBehavior.AllowGet);
}
这里通过关键字查询,返回人员列表的Json对象。
页面效果:
MVC3 学习笔记 之(ajax表单)的更多相关文章
- Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法
Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...
- HTML5学习笔记<五>: HTML表单和PHP环境搭建
HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...
- Yii学习笔记之四(表单验证 api 翻译)
1.表单验证 对于用户输入的全部数据,你不能信任,必须加以验证. 全部框架如此.对于yii 能够使用函数 yii\base\Model::validate() 进行验证 他会返回boolean值的 ...
- knockoutJS学习笔记08:表单域绑定
前面的绑定都是用在基本标签上,这章主要讲表单域标签的绑定. 一.value 绑定 绑定标签:input text.textarea. <p>用户名:<input type=" ...
- HTML 学习笔记 JQuery(表单,表格 操作)
表单应用 一个表单有3个基本组成部分 (1)表单标签:包含处理表单数据所用的服务器端程序URL 以及数据提交到服务器的方法 (2)表单域:包含文本框 密码框 隐藏框 多行文本框 复选框 单选框 下拉选 ...
- redux-form的学习笔记二--实现表单的同步验证
(注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidation/ 在这篇博客里,我将用redux-f ...
- HTML学习笔记8:表单
什么是表单? 一个网页表单可以将用户输入的数据发送到服务器进行处理.因为互联网用户使用复选框,单选按钮或文本字段填写表格,所以WebForms的形式类似文件或数据库.例如,WebForms ...
- PHP学习笔记 01 之表单传值
一.HTML传值/PHP接收方法 1.GET(地址栏+问号+数据信息) (1)方式一:表单Form: method = 'get' GET接收数据方式: $_GET['表单元素name对应的值] (2 ...
- 学习笔记之form表单
form表单提交的数据 是字典类型 这样 方便在create时候 直接解压
- angular学习笔记(二十)-表单验证
本篇主要介绍angular中的表单验证: 表单验证主要有以下一些内容: 1. required指令: 相当于html5的required属性,验证不能为空 2. ng-maxlength属性: 验证内 ...
随机推荐
- linux 下配置多个tomcat同时运行
一个服务器上内存通常有2G或者更多,一个tomcat 运行管理这么多内存有点力不从心,并且貌似一个进程所能建立的线程数量是有限的,于是我们想要在一个服务器上运行多个tomcat.如下是摘抄自:http ...
- 【JZOJ4813】【NOIP2016提高A组五校联考2】running
题目描述 小胡同学是个热爱运动的好孩子. 每天晚上,小胡都会去操场上跑步,学校的操场可以看成一个由n 个格子排成的一个环形,格子按照顺时针顺序从0 到n-1 标号. 小胡观察到有m 个同学在跑步,最开 ...
- 【OI】拓扑排序
拓扑排序 首先要求图为DAG 算法:首先将度为1的节点加入队列每次取出队首点u,在图中删去和u相邻的边继续将度数为1的点加入队列 到了最后, 如果没有度数为1的点,则图不是DAG 通过拓扑排序可以给D ...
- Directx11教程(49) stencil的应用-镜面反射
原文:Directx11教程(49) stencil的应用-镜面反射 本教程中,我们利用stencil来实现一个镜面反射效果. 1.首先我们要在D3DClass中增加几个成员变量及函数. I ...
- python 利用pandas导入数据
- React 入门笔记
一.什么是React React: A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES 上面的话直译过来就是,React是一个用于构建用户界面的Java ...
- NPOI操作、导出Excel
//使用NPOI操作Excel private void ExcelNPOI(System.Data.DataTable dt, HttpContext context) { IWorkbook wo ...
- AT2346 No Need
atcoder上的题目 链接 一道思维题目 可以发现如果X是可有可无的,那么所有小于X的数也一定是可有可无的, 所有我们只要找出最大的那个可有可无的数字就好了 进一步分析,发现 若A1, A2, . ...
- 使用 Javascript 将二进制字符串转成数字
使用 Javascript 将二进制字符串转成数字 Javascript 转成 数学太简单了. 原来 parseInt 还有这样的用法. function binaryAgent(str) { str ...
- Java练习 SDUT-1184_拍皮球
C语言实验--拍皮球 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小瑜3岁了,很喜欢玩皮球,看来今后喜欢打篮球的^_ ...