0

どこが間違いなのかよくわからない。

fileuploadfieldのあるフォームがあります。リクエストは正常に送信され、コントローラーのアクションはすべてのパラメーターを取得して処理し、ブラウザーに応答を送信します。ただし、htmlページでは、フォームを送信した後、常にFAILUREイベントが発生し、SUCCESSは発生しません。

クライアントサイドコード

Ext.create('Ext.form.Panel', {
        renderTo: 'Container',
        bodyPadding: '10 10 0',
        items: [
        {
            xtype: 'form',
            width: 300,
            border: false,
            fileUpload: true,
            items: [
            {
                xtype: 'combobox',
                id: 'PayTypes',
                width: 215,
                store: PayTypesStore,
                valueField: 'id',
                displayField: 'Name',
                editable: false,
                name: 'id'
            }
            ,
            {
                xtype: 'filefield',
                id: 'form-file',
                name: 'file',
                buttonText: '',
                buttonConfig: {
                    iconCls: 'upload-icon'
                }
            }
            ],
            buttons: [
            {
                text: 'Send',
                handler: function () {
                    var form = this.up('form').getForm();
                    if (form.isValid()) {
                        form.submit({
                            url: 'UploadFile',
                            waitMsg: 'Uploading your photo...',
                            success: function (fp, o) {
                                console.log("success");
                                msg('Success', 'Processed file on the server');
                            },
                            failure: function (form, action) {
                                console.log(action);
                                Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response');
                            }
                        });
                    }
                }
            }
            ]
        }
        ]
    });

サーバーサイドコード:

public JsonResult UploadFile(HttpPostedFileWrapper file, int id)
    {
        var response = Json(new { success = true });
        response.ContentType = "text/html";

        return Json(response);
    }

クライアント側で受信した応答:

{"ContentEncoding":null,"ContentType":"text/html","Data":"success":true},"JsonRequestBehavior":1,"MaxJsonLength":null,"RecursionLimit":null}

フォームをサミットした後にSUCCESSイベントを取得するには、コードで何を修正する必要がありますか?

4

1 に答える 1

0

Jsonメソッドを 2 回呼び出しました。あなたが必要とする唯一のものは

public JsonResult UploadFile(HttpPostedFileWrapper file, int id)
{
    return Json(new { success = true });
}
于 2012-11-06T08:47:27.260 に答える