• 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

    可以看到,两者是一样的

  • 相关阅读:
    java Object类源代码详解 及native (转自 http://blog.csdn.net/sjw890821sjw/article/details/8058843)
    使用库项目开发
    Android 开发规范
    使用Git之后出现android library引用失败
    Github安卓开源项目编译运行
    android项目引入三方类库配置文件
    Web交互设计优化的简易check list
    php程序效率优化的一些策略小结
    SQL语句优化原则
    纯PHP实现定时器任务(Timer)
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/9297958.html
Copyright © 2020-2023  润新知