首页 新闻 会员 周边 捐助

asp.net mvc的JavaScriptResult一定要与Ajax提交表单配合使用吗

0
[已解决问题] 解决于 2014-12-17 22:24

asp.net mvc的JavaScriptResult一定要与Ajax提交表单配合使用吗,

使用Ajax.BeginForm创建的表单提交到Action后返回JavascriptResult能够执行返回的js,但使用Html.BeginForm创建表单,在Action中返回的JS代码却不会执行,这是为什么?

北在北方的主页 北在北方 | 初学一级 | 园豆:180
提问于:2014-12-14 21:27
< >
分享
最佳答案
0

你简单一点这样理解:

所有页面返回的都是字符串,要让这个字符串变成代码运行,

在javascript中有个函数叫eval,你有空么可以搜索这个看看啥意思。

感觉这样你可以知道其所以然,而不只是知其然。

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30844 | 2014-12-14 21:48

eval我是知道的,Html.BeginForm创建表单,提交表单到Action,Action返回JavascriptResult,调用的是Controller的JavaScript方法,无论返回的是eval("jscode")还是jsCode,都不起作用,但如果是Ajax.BeginForm则会执行,原因?!

北在北方 | 园豆:180 (初学一级) | 2014-12-14 22:00

@北在北方: MVC返回的都是字符串。你先把请求响应理解了。再想这些把

吴瑞祥 | 园豆:29449 (高人七级) | 2014-12-14 22:19

@北在北方: 你目前的状态是大部分web开发人员,

没有搞清楚啥是客户端,啥是页面返回的时候。

这个阶段过了就豁然开朗了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-14 22:24

@吴瑞祥: 答非所问!我问的是为什么AjaxHelper提交表单能够运行返回的js字符串而HtmlHelper不能,不是问的返回的是什么

北在北方 | 园豆:180 (初学一级) | 2014-12-14 22:25

@北在北方: 原因就是返回的数据结构不一样。。。。

吴瑞祥 | 园豆:29449 (高人七级) | 2014-12-14 22:28

@吴瑞祥: 你看被鄙视了吧,哈哈哈~

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-14 22:30

@吴瑞祥: 返回的是javascript代码文本,content-type是application/x-javascript,对吧,数据结构不同?Ajaxhelper提交表单和HtmlHelper提交表单会导致服务器返回不同的数据结构??!!

北在北方 | 园豆:180 (初学一级) | 2014-12-14 22:43

@北在北方: 一个是同步请求,一个是异步请求。

同步请求会由浏览器来处理返回值,一般都是返回html页面,

异步请求一般会由JS来处理返回值,一般返回值都是一个JS脚本,可能是一个对象,也可能是一个方法。

这样能明白吗?

吴瑞祥 | 园豆:29449 (高人七级) | 2014-12-15 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册