MVC3 ajax功能

微软mvc3框架的项目使用微软自带的ajax 必须引用下面

<script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script> 

system.web.mvc.ajax  提供了一些常用的方法方便使用

AjaxHelper   主要 有

1)ajax.ActionToLink  点击链接异步加载返回的内容到html元素内

2)BeginForm(AjaxHelper, AjaxOptions)    将<form>标记写到响应中去,异步提交form数据 。

@using (Ajax.BeginForm("jsonLogin", "Home",
    new AjaxOptions {
        Confirm = "确定ajax提交么2?", UpdateTargetId = "loginError2", InsertionMode = InsertionMode.Replace, OnSuccess = "success",
        HttpMethod="Post", LoadingElementId="" }, new { name="form2"}
        ))
{
   <span id="loginError2" ></span>
   @Html.EditorForModel();
  <input type="submit" value="提交2" />
}

3)BeginRouteForm(String, AjaxOptions)

4)GlobalizationScript() 

5)RouteLink(String, String, AjaxOptions, Object)

AjaxOptions的几个属性

Confirm: 提交之前确认对话框

HttpMethod:get  or  post

UpdateTargetId:服务器端返回数据后用来填充 此id。

InsertionMode:  指定如何将响应插入目标 DOM 元素的模式. 3个值。  “InsertAfter”、“InsertBefore”或“Replace。默认是 replace.

OnBegin: post数据后执行的,一般为显示加载中..

OnComplete:获取响应的数据后更新页面之前的js方法

OnFailure:更新页面失败调用的js方法

OnSuccess:成功更新页面后执行的方法

项目问题:

1.mvc3 使用ajax时候,数据被提交2次。

解决:因为引用了2次js文件。

  <script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
  <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>

随便删除上面其中之一就行了

2.mvc3项目中使用 ajaxhelper帮助失效,提交数据仍然是普通的post提交

答:缺少js文件引用

3.  mvc3 中使用客户端模型验证,服务端验证

   1)首先要将web.config中的验证设置为true

 <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    
  </appSettings>

   2)引用相关js文件

客户端验证要引用

   <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
昂首阔步,不留一点遗憾
原文地址:https://www.cnblogs.com/StudyLife/p/3467427.html