【问题标题】:The different between returning an object and response return?返回对象和响应返回的区别?
【发布时间】:2016-10-20 02:14:38
【问题描述】:

假设我有两个操作方法action1action2

动作 1:

    public JavaScriptSerializer action1() 
    {
        var student = new Student() { First = "john", Last = "doe" };
        JavaScriptSerializer jsonStudent = new JavaScriptSerializer();
        jsonStudent.Serialize(student);

        return jsonStudent;

    }

动作 2:

   public void action2()
    {
        var student = new Student() { First = "john", Last = "doe" };
        JavaScriptSerializer jsonStudent = new JavaScriptSerializer();
        jsonStudent.Serialize(student);

        Response.Write(jsonStudent);
    }

假设我的视图有一个像这样的Ajax 调用:

 <script>
     $(function () {

         $.ajax({
             url: 'AjaxCallsTest/action1',
             dataType: 'json',
             success: function (response) {
               //code here
             },
             error: function (response, status, xhr) {
        //code here
             }


         })
     })
 </script>

在这两种情况下,一种被写入Response 对象,另一种具有return 语句。我的问题即使有return,如果用return 语句编写动作方法没有意义,它是否实际上将jsonStudent 对象添加到Response 对象?

谢谢。

【问题讨论】:

    标签: c# jquery asp.net-mvc asp.net-mvc-4 asp.net-mvc-5


    【解决方案1】:

    Response.Write() 实际上向客户端(aspx 文档)写入了一些内容。它的工作方式类似于 PHP 的 echo - 它只是打印到响应中。

    return,另一方面,只是返回一个值给调用者函数。所以,如果你想打印它(比如action2()),你就必须打印结果。

    基本上,这是您如何使用这些函数中的每一个来打印JavaScriptSerializer

    动作1

    JavaScriptSerializer a = action1();
    Response.Write(a);
    

    动作2

    action2();
    

    因此,您的问题的答案是,如果您以后不需要代码中的 JavaScriptSerializer 对象,则 return 是不必要的。但是,如果您以后要使用该对象,则最好将其返回并存储。

    【讨论】:

    • 写入 Response 的 outputStream 和通过 Response.Write() 打印到 Response 有什么区别?
    • 老实说,我不确定,但这可能会有所帮助:hanselman.com/blog/…
    猜你喜欢
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多