http://xiangai.taobao.com
http://shop148612228.taobao.com

ASP.NET MVC 中使用JavaScriptResult asp.net mvc 返回 JavaScript asp.mvc 后台返回js

 return this.Content("<script>alert('暂无!');window.location.href='/Wap/Index';</script>");   亲测可以.

 

 

 

 

 

在浏览器地址栏输入地址,在页面上想通过脚本弹出一个框,看到Controller下有个JavaScript方法,返回的类型是JavaScriptResult,于是想用这个方法弹出框,

public ActionResult Index()
        { 
            return  this.JavaScript("<script>alert(“操作成功')</script>");
        }

访问页面时,在火狐上显示的是js文本

image

在IE上是下载文件

image

查看响应头信息,Content Type 为application/x-javascript,返回的是js代码。

image

所以,不能访问页面时使用this.JavaScript输出脚本,弹出提示框。

可以使用this.Content输出脚本,弹出提示框,像这样

public ActionResult Index()
        { 
            return  this.Content("<script>alert('操作成功')</script>");
        }

image

当然,也可以视图页面上写js,同样可以达到相同的效果。

那么,JavaScriptResult怎样用呢,可以在页面上使用jQuery方法  getScript,向服务器获取js代码,然后执行js代码,所以服务端代码就改成这样

public ActionResult Index()
        {
            return this.JavaScript("alert('操作成功');");
        }

注意的是,不需要加上<script>标签,所以不要写成this.JavaScript(“<script>alert('操作成功');</script>”)。

那么在Index2页面上这样写,请求/home/index

<script>
            $.getScript("/home/index");
        </script>

最后访问/home/index2页面会弹出一个框

image

 

那么this.Content和this.JavaScript有什么不同

this.Content的返回类型是ContentResult,this.JavaScript的返回类型是JavaScriptResult,

反编译ContentResult和JavaScriptResult,可以看到不同之处

image

JavaScriptResult设置ContetTypew为application/x-javascript,而ContentResult可以自定义ContentType,

既然这样,可以使用this.Content(“alert(‘操作成功’)”,“application/x-javascript,”)代替this.JavaScript(“alert(‘操作成功’)”)

复制代码
public ActionResult Index()
        {
            return this.JavaScript("alert('操作成功');");
        }

        public ActionResult ReplaceContentMethod()
        {
            return this.Content("alert('操作成功');", "application/x-javascript");
        }
复制代码

然后在Index2页面使用getScript分别请求/home/index ,/home/replacecontentmethod,看下效果

/home/index的响应头如下

image

/home/replacecontentmethod的响应头如下

image

可以看到,两者是一样的

posted @ 2018-07-12 09:49  万事俱备就差个程序员  阅读(2512)  评论(3编辑  收藏  举报

http://xiangai.taobao.com
http://shop148612228.taobao.com
如果您觉得对您有帮助.领个红包吧.谢谢.
支付宝红包
微信打赏 支付宝打赏