JavaScriptResult类型

一、介绍

    1.1. System.Web.Mvc.JavaScriptResult 在服务器端生成一段JavaScript 脚本,JavaScript 脚本以字符串形式通过当前的HttpResponse 响应给请求的客户端,在客端执行;

    1.2. 操作方法(Action)调用JavaScript()方法,返回JavaScriptResult类型;

二、源代码分析

       public class JavaScriptResult : ActionResult
      {
          public override void ExecuteResult(ControllerContext context)
          {

               //将脚本内容写入当前HttResponse
               HttpResponseBase response = context.HttpContext.Response;
              //将响应的媒体类型设置为"applicationlx-javascript"
              response.ContentType = "application/x-javascript";
              response.Write(this.Script);
          }
           public string Script { get; set; }
       }

              Script属性:表示响应的JavaScript 脚本;

       ExecuteResult:用于响应JavaScript 脚本的方法(相关操作:1.将脚本内容写入当前HttResponse ; 2.将响应的媒体类型设置为"applicationlx-javascript,3.将脚本返回

                                给客户端;)


          public abstract class Controller : ControllerBase, IActionFilter, IAuthorizationFilter, ..........
           {

              protected internal virtual JavaScriptResult JavaScript(string script);

           }

          抽象类Controller 中定义了一个JavaScript 方法,它根据指定的脚本字符串创建一个JavaScriptResult;

三、适用范围:

        返回类型为J avaScriptResult 的Action 方法一般用于处理Ajax 请求

四、其他:

      ContentResult 也能实现与JavaScriptResult 一样的脚本响应功能, 大部分浏览器会将媒体类型"applicationlx-javascript"等同于"textljavascript" ,

     所以在通过ContentResult 进行脚本响应时将媒体类型设置为"textljavascript" 可以起到相同的效果。

       案例:         
           // 返回类型JavaScriptResult  
           public JavaScriptResult JavaScript()
           {
               return JavaScript("alert ( 'Hello World! ' ) i");
           }
      
           //返回类型ContentResult     
           public ContentResult JavaScript()
           {
             return Content("alert (' Hello World! ' ) i", "application/x-j avascript");
           }

    

   


  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值