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属性: 验证内 ...
随机推荐
- 2019-8-31-C#-标准性能测试高级用法
title author date CreateTime categories C# 标准性能测试高级用法 lindexi 2019-08-31 16:55:58 +0800 2018-07-08 0 ...
- hdu 2844 混合背包【背包dp】
http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:有n种纸币面额(a1,a2,...an),每种面额对应有(c1,c2,...cn)张.问这些钱能拼成 ...
- String和Object转换
http://www.cnblogs.com/mingzi/archive/2009/01/03/1367474.html
- Directx11学习笔记【二十一】 封装键盘鼠标响应类
原文:Directx11学习笔记[二十一] 封装键盘鼠标响应类 摘要: 本文由zhangbaochong原创,转载请注明出处:http://www.cnblogs.com/zhangbaochong/ ...
- Oracle 11g Pivot函数实现行转列
先上语法规范: SELECT .... FROM <table-expr> PIVOT ( aggregate-function(<column>) FOR <pivot ...
- 2017 ACM/ICPC Asia Regional Shenyang Online:number number number hdu 6198【矩阵快速幂】
Problem Description We define a sequence F: ⋅ F0=0,F1=1;⋅ Fn=Fn−1+Fn−2 (n≥2). Give you an integer k, ...
- lavarel box 地址
https://atlas.hashicorp.com/laravel/boxes/homestead download URL https://atlas.hashicorp.com/laravel ...
- python 字典创建
- @codeforces - 1214H@ Tiles Placement
目录 @description@ @solution@ @part - 1@ @part - 2@ @accepted code@ @details@ @description@ 给定一个 n 点的树 ...
- selenium 自动化点击页面
#!/usr/bin/env python# -*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.com ...