首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用解析JsonResult

如何用解析JsonResult
EN

Stack Overflow用户
提问于 2011-06-27 06:31:20
回答 1查看 850关注 0票数 0

上传图像的下列代码

代码语言:javascript
复制
 <a id="addImage" href="javascript:;">Add Image</a>

Javascript:

代码语言:javascript
复制
$().ready(function () {
            var counter = 0;
            $(function () {
                var btnUpload = $('#addImage');
                new AjaxUpload(btnUpload, {
                    action: 'saveupload.aspx',
                    name: 'uploadimage',
                    dataType: 'json',
                    onSubmit: function (file, ext) {
                        $("#loading").show();
                    },
                    onComplete: function (file, response) {
                        alert(response);
                        var uploadedfile = "UserData/" + file;
                        $("#uploadImageWrapper").append("
            <div class='imageContainer offset'  id='current" + counter + "'>
            <img height='65px' width='65px' src='" + uploadedfile + "' alt='" + uploadedfile + "'/></div>");
                        $('#current' + counter).fadeIn('slow', function () {
                            $("#loading").hide();
                            $("#message").show();
                            $("#message").html("Added successfully!");
                            $("#message").fadeOut(3000);
                            counter++;
                        });
                    }
                });
            });
        });

服务器代码:(saveupload.aspx.cs)

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
    {
        HttpFileCollection uploadedFiles = Request.Files;
        int i = 0;
        string width = "0";
        string height = "0";
        if (uploadedFiles.Count > 0)
        {
            while (!(i == uploadedFiles.Count))
            {
                HttpPostedFile userPostedFile = uploadedFiles[i];
                if (userPostedFile.ContentLength > 0)
                {
                    string filename = userPostedFile.FileName.Substring(userPostedFile.FileName.LastIndexOf("\\") + 1);
                    userPostedFile.SaveAs(Path.Combine(Server.MapPath("UserData"), filename));
                    Bitmap img = new Bitmap(Path.Combine(Server.MapPath("UserData"), filename));
                    width = img.Width.ToString();
                    height = img.Height.ToString();
                }
                i += 1;
            }
        }
    //I would like to return Uploaded image Height and Width
        Response.Write(@"{Width:" + width + ", Height:" + height + "}");
    }

返回的JsonResult是我在警报消息中显示的。

问题:我不能得到response.Width和response.Height。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-27 07:29:23

首先,我建议清除saveupload.aspx.的HTML你不需要它,它污染了你的反应。你只需要:

代码语言:javascript
复制
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="saveupload.aspx.cs" Inherits="WebApplication1.saveupload" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

另一件事是,当您在脚本中返回响应时,可以使用parseJSON,如下所示:

var obj = jQuery.parseJSON(response)

现在您应该能够访问宽度和高度:

代码语言:javascript
复制
obj.Width 

最后一件事。Valum的Ajax已被作者替换为一个新组件。您可以找到它,这里,它非常类似,但是他仍然在更新这个项目,所以您可以考虑切换。

更新:

我建议的另一件事是使用jSon序列化程序(System.Web.Script.Serialization)序列化要返回的流:

代码语言:javascript
复制
var jSon = new JavaScriptSerializer();
var OutPut = jSon.Serialize(myClass);
Response.Write(OutPut);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6489327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档