zoukankan      html  css  js  c++  java
  • ASP.NET MVC 中使用JavaScriptResult

    在浏览器地址栏输入地址,在页面上想通过脚本弹出一个框,看到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

    可以看到,两者是一样的

  • 相关阅读:
    BZOJ 1391: [Ceoi2008]order
    BZOJ 4504: K个串
    2019 年百度之星·程序设计大赛
    POJ 2398 Toy Storage (二分 叉积)
    POJ 2318 TOYS (二分 叉积)
    HDU 6697 Closest Pair of Segments (计算几何 暴力)
    HDU 6695 Welcome Party (贪心)
    HDU 6693 Valentine's Day (概率)
    HDU 6590 Code (判断凸包相交)
    POJ 3805 Separate Points (判断凸包相交)
  • 原文地址:https://www.cnblogs.com/dandzm/p/4730853.html
Copyright © 2011-2022 走看看