1.Ajax.BeginForm
前端页面:必须引入js
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script>
function Success(obj) {
$('#result').val(obj.Sum);
}
</script>
@using (Ajax.BeginForm("CalcAdd1", "home", new AjaxOptions()//默认的post请求
{
OnSuccess = "Success"//回调函数名字
}))
{
<input type="text" name="calc1"/>
<span>+</span>
<input type="text" name="calc2"/>
<input type="submit" value="="/>
<input type="text" id="result"/>
}
控制器:
public ActionResult CalcAdd1(int calc1, int calc2)
{
int sum = calc1 + calc2;
var temp = new
{
Sum=sum
};
return Json(temp,JsonRequestBehavior.AllowGet);
}
2、异步
-》两种方式:使用jquery的异步方法;使用AjaxHelper
-》行为的返回值:
如果返回纯文件,使用Content("");
如果返回Json对象,使用Json(obj,...)
AjaxOptions |
HTML attribute |
Confirm |
data-ajax-confirm |
HttpMethod |
data-ajax-method |
InsertionMode |
data-ajax-mode * |
LoadingElementDuration |
data-ajax-loading-duration ** |
LoadingElementId |
data-ajax-loading |
OnBegin |
data-ajax-begin |
OnComplete |
data-ajax-complete |
OnFailure |
data-ajax-failure |
OnSuccess |
data-ajax-success |
UpdateTargetId |
data-ajax-update |
Url |
data-ajax-url |
3.校验
引入三个JS
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
[Required]是否为空
[StringLength]字符串长度
[Range]字符串范围
[RegularExpression]
属性ErrorMessage:指定错误提示信息
在View的页面中,首先指定页面强类型@model 类型
使用Html.***For(model=>model.Property)生成表单,这些表单元素中就会包含校验规则属性
引用jquery、jquery校验、jquery隐式校验3个组件
通过Html.EnableClientValidation(true);控制客户端验证的启用与禁用(mvc3中自动开启)
使用Html.ValidationMessageFor(…)显示校验信息,也可以使用Html.ValidationSummary()统一显示
点击提交按钮转到后台Action,使用ModelState.IsValid判断前台验证是否成功,如果返回true表示验证成功
@using (Html.BeginForm("Add", "Person", FormMethod.Post))
{
@Html.TextBoxFor(p=>p.Id)
@Html.ValidationMessageFor(p=>p.Id)//输出错误信息
<br/>
@Html.TextBoxFor(p=>p.Name)
<br/>
<input type="submit" value="添加"/>
}
public class Person
{
[Required(ErrorMessage = "不能为空")]
[Range(10,100,ErrorMessage = "必须是10-100间的值")]
public int Id { get; set; }
public string Name { get; set; }
}