Ajax.BeginForm 的真正使用 要引用 jquery.unobtrusive-ajax.js 否则就相当于是普通的form表单

列表页面编辑按钮

点击后加载进来 加载到div上

 

 

点击保存

 

都是依赖于jquery.unobtrusive-ajax.js

这才是异步 页面不刷新 不动 不返回页面 而是返回json   依赖于jquery.unobtrusive-ajax.js

 

 

单独请求接口

 

返回json 没有方法

也没有绑定到方法的js

 

 

 

 

 

 

 

 

2

 

 

 

 

 第一次进来都是返回html

这一次加载到了哪?

本来应该是在新页面中打开的

然而他是iframe 所以在iframe 中重新定位到编辑页

并未加载到div 中

Ajax.BeginForm 也可以异步 返回 html   json

至于加载在哪里 看情况

Ajax.BeginForm  必须依赖js  否则和html.BeginForm   效果一样

html.BeginForm(同步 页面刷新)  

Ajax.BeginForm(异步 页面不刷新 加载数据)    

 

 

 

如果修改Ajax.BeginForm的返回    返回html

 

接口返回html

加上这段

 

 

查看返回结果

COPY 出来 查看 

看到有 4 处 777

哪4处

1

 

 2 

 

3  

 4 

3 处 验证 失败 atm[777]     一处原来填充 input的值

 

也说明 返回view 才走 前端视图  rezor 处理 C# 逻辑 验证等等

返回json数据 就直接返回了 

view   json 都可以异步(ajax)(ajaxbeginform)接收

 

Ajax.BeginForm 返回 如果有js   才是异步 页面不刷新   页面不刷新的情况 异步返回的可以是html 也是可以是json

没有js 和 Html.BeginForm 一样

 

 

我将

js文件内容删除后 

断点也不进了 

 

 

 

Ajax.BeginForm 参数还是有 UpdateTargetId = "Edit", OnSuccess = "formSuccess(data)

在 J_iframe 下显示出来了

js文件是关键 如果没有 就算定义了参数 也没用

相当于同步了 和 Html.BeginForm 

 

 

 

我又将

js文件恢复   参数拿掉

断点也没进

 

 

 页面返回一个json参数 

没任何动作

说明还是有异步 是异步 页面不刷新 

 

 

总结 Ajax.BeginForm

Ajax.BeginForm要和js文件一起使用

如果没有js文件  就像Html.BeginForm 一样 同步  页面刷新(不管是div下  还是iframe下)

如果有js文件 但没定义参数 页面异步   页面不刷新 页面没反应

如果没有js文件 但定义参数 页面同步 刷新 页面Html.BeginForm  一样

有js文件 而且定义了参数 页面不刷新 异步 而且还可以根据参数 把返回数据(json html) 加载到对应控件 执行对应的方法

 

他们都可以返回html  json数据

 

 html.beginform返回 json

 

posted @ 2018-11-30 16:58  ~雨落忧伤~  阅读(352)  评论(0编辑  收藏  举报