如何从控制器操作中捕获返回值

时间:2012-10-02 15:56:59

标签: jquery asp.net-mvc uploadify

我正在使用uploadify在我的ASP.NET MVC应用上上传.csv文件。从控制器操作中,我返回一个带有几个值的JSON:

return Json(new { success = false, message = result.Message });

以下是uploadify代码:

$("#email").uploadify(
                    {
                    'uploader': '/js/component/uploadify/uploadify.swf',
                    'script': '/email/UploadEmail',
                    'cancelImg': '/js/component/uploadify/cancel.png',
                    'fileExt': '*.csv',
                    'fileDesc': '*.csv',
                    'auto': true,
                    'multi': false,
                    'buttonText': 'Upload...',

                        'onComplete': function (event, queueID, fileObj, response, data)
                            {

                                alert(jQuery.parseJSON(response));
                                alert(jQuery.parseJSON(response.message));
                                var filename = fileObj.name;
                                $('#emailSuppressionFile').append('<input id="' + queueID + '" type="hidden" name="files[' + queueID + ']" value="' + filename + '" />');                                   
}                                
                    });

我正在尝试阅读我从控制器操作返回的“消息”,但无法弄清楚如何。请参阅上面的警报。第一个警报返回:[object Object],第二个返回null。

2 个答案:

答案 0 :(得分:3)

试试这样:

onComplete: function(event, queueID, fileObj, response, data) {
    var json = jQuery.parseJSON(response);
    alert(json.message);
},

也不要在事件名称周围加上引号。

答案 1 :(得分:0)

在旧版本的Uploadify onComplete事件中,用于从Controller提供响应。 但是,在最新版本中,您需要使用onUploadSuccess事件,如此,

   'onUploadSuccess' : function(file, data, response) {
         alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
    }