sandeep nagabhairava Ответов: 2

На jQuery AJAX отправка виде FormData на страницу ASP.NET (aspx-файл.в CS)


Ниже приведен мой запрос ajax
function sendData() {
    var formdata = new FormData();
    var fileUpload = $("#txtUploadFile").get(0);
    var files = fileUpload.files;   
    for (var i = 0; i < files.length; i++) {
        formdata.append(files[i].name, files[i]);
        }
    formdata.append("PaymentDate", new Date());
    $.ajax({
        url: 'CCA_Form.aspx/SendData',
        type: 'POST',
        data: formdata,
        contentType: false,
        processData: false,
        success: function () {
            alert("Data Added Successfully");
        },
        error: function () {
            alert("Error while inserting data");
        }
    });
}
и мой серверный метод выглядит так
[WebMethod]
    public static string SendData()
    {//break point here
        // code
        return "return data";
    }
метод ajax всегда показывает сообщение об успехе, а webmethod не попадает на серверную сторону. Не могли бы вы помочь мне, что я пропустил в своем коде? Заранее спасибо.

Что я уже пробовал:

Как отправить formdata на страницу aspx.cs с помощью jQuery ajax?

2 Ответов

Рейтинг:
1

Nirav Prabtani

Очевидный webMethod не будет выполняться

Вы передали данные в методе AJAX POST

data: formdata,


Но в вашем веб-методе нет параметров.

[WebMethod]
    public static string SendData()
    {//break point here
        // code
        return "return data";
    }


Я надеюсь, что этого достаточно для вас, дайте мне знать, если у вас есть какие-либо вопросы или опасения по этому поводу.


sandeep nagabhairava

Уважаемый Нирав Прабтани, не могли бы вы сказать мне, что такое тип параметра в WebMethod? bcoz я посылаю FormData он включает в себя различные входные данные.

Nirav Prabtani

Вы должны объявить параметр в соответствии с formdata
поддержите свой formdata = {"ID": "1", "Name": "nirav p"}

чем будет ваш веб-метод
[WebMethod]
публичная статическая строка SendData(string ID,string Name)
{//точка останова здесь
// код
return " возврат данных";
}

Рейтинг:
1

Ramesh Kumar Barik

[WebMethod(EnableSession = true)]
публичная статическая строка SendData()
{//точка останова здесь
// код
return " возврат данных";
}

$.Аякс({
contentType: false,
данные: formData,
url: "/ CCA_Form. aspx/SendData",
тип: "пост",
processData: false,
успех: функция (данные) {
предупреждение ("данные успешно добавлены");
},
функция ошибок () {
alert ("ошибка при вставке данных");
}
})
Попробовать это.


sandeep nagabhairava

@Ramesh Kumar Barik что такое параметр для FormData? он включает в себя весь входной контент

Ramesh Kumar Barik

Дорогой Сандип,
Я обновил свой ответ, пожалуйста, проверьте и дайте мне знать, работает ли он.
Только добавить [WebMethod(EnableSession = true)]

Спасибо.

sandeep nagabhairava

Дорогой Рамеш,
Это не работает, я отправляю как FormData(содержит все входные данные), но я не уверен, как получить его на стороне сервера.

Ramesh Kumar Barik

Дорогой Сандип,
Тот же код, который я написал в своем приложении, отлично работает для меня.
Пожалуйста, проверьте в режиме отладки, в чем проблема.

Спасибо

Ramesh Kumar Barik

Дорогой Сандип,

Вы можете перейти по этой ссылке.

https://forums.asp.net/t/2024764.aspx?Passing+форма+данные+to+a + контроллер+метод+использование+Ajax