首页 新闻 会员 周边 捐助

在Asp.Net MVC中怎么在Action中返回一段JS并立即执行

0
悬赏园豆:100 [已解决问题] 解决于 2015-09-09 09:42
小A爱吧的主页 小A爱吧 | 初学一级 | 园豆:22
提问于:2015-01-13 11:10
< >
分享
最佳答案
1

首先是MVC,就不能直接Response输出,然后用return Content的方式是可以返回的。如果你需要返回内容加脚本,那么你可以return Content("<div>其他内容</div><Script>alert(111)</Script>");

总之,就是要将<script>输出让浏览器解析。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2015-01-13 11:47
其他回答(7)
0

Response.Write("<script>window.alert('貌似就是这种感觉');</script>");

收获园豆:10
流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 11:15

不对诶

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:27

@李梅: return Content("<Script>alert(111)</Script>");

支持(0) 反对(0) 流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 11:30

@李梅: 绝对是对滴 测试过滴 

public actionresult xxx(){

  return Content("<Script>alert(111)</Script>");

}

支持(0) 反对(1) 流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 11:30

@流星霜紫: 这个倒是弹出提示框了,但是弹出提示框,点击了确定之后就是一片空白了

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:33

@李梅: 因为什么都木有哇 =。=

支持(0) 反对(0) 流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 11:48

@流星霜紫: 控制器 和 视图的关系。  控制器 请求  也就是 return View() 请求当年同名的页面 进行跳转。而 Content  并不是跳转到 同名的页面 所以 你通过 Content 输出的东西  相当于 new  这种感觉 重新创建了一个页面 所以 除了 返回脚本哪个new出的页面什么都木有 所以 白花花的

支持(0) 反对(0) 流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 15:00
0

response.write(<script></script>);//可以输出脚本

收获园豆:10
骑着蜗牛耍流氓 | 园豆:135 (初学一级) | 2015-01-13 11:16

不对诶

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:27

@李梅: 哪里不对了

支持(0) 反对(0) 骑着蜗牛耍流氓 | 园豆:135 (初学一级) | 2015-01-13 11:28

@骑着蜗牛耍流氓: 没得东西输出

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:32
0

1. return JavaScript("alert('Hello World')");

2.Response.Write("<script type='text/javascript'>parent.location.href = '" + url + "';</script>");//(可以用来实现在iframe中跳转到指定页面.)   

收获园豆:30
晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 11:17

不对诶

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:28

@李梅: 你用的哪个不对?怎么用的?这个我自己都是这么用的。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 11:28

这样写  打开了一个空白页面  页面上就显示  alert('Hello World')这句话

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:30

@李梅: 你代码粘贴出来我看看。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 11:31

@晓菜鸟:  return JavaScript("alert('Hello World')");就是这一句

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-13 11:41

@李梅: 那你前端是怎么请求的呢?

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 13:19
0

js应该写到view中去,为啥要从action返回。。mvc的目的是为了分离数据和表现层。。

收获园豆:10
开小灶 | 园豆:128 (初学一级) | 2015-01-13 13:35
0

重点是前台..你后台返回一个js语句没什么问题的.

但你要在前台把JS语句加入到文档中,就会执行代码.

或者你拼装一个JS对象传到前台,反序列化后,调用对象的方法

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2015-01-13 15:49
0

不知道你的场景是什么,如果只是想要执行一段js的话上面的回答都是可以的,直接输出js就行了。

如果是想在View中插入一段js的话可以试试这种方法:

controller中: ViewBage.Js="<script>alert(123456)</script>";

View 中: @Html.Raw(@ViewBage.Js);

收获园豆:10
Gamain | 园豆:357 (菜鸟二级) | 2015-01-15 12:18
0

return new JavaScriptResult("your js");

收获园豆:10
irocker | 园豆:274 (菜鸟二级) | 2015-01-21 11:15

这样写肯定不对噻

支持(0) 反对(0) 小A爱吧 | 园豆:22 (初学一级) | 2015-01-21 11:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册