مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

alibahman47

عضویت از 1395/11/13

فرستادن عکس داخل فایل آپلودر از طریق Jquery Ajax به سمت کنترولر

  • دوشنبه 23 مرداد 1396
  • 14:15
تشکر میکنم

درود

میخوام اطلاعات ورودی در یک فورم رو به سمت کنترولر بفرستم , این اطلاعات شامل چند تا متن ورودی و یک عکس آپلود شده (File Uploader)است ,

بهترین روش برای انجام این کار میشناسم استفاده از فورم ajax است :

ولی تنها مشکلیکه هست در برگشت اطلاعات از کنترولر به سمت View نمیتوان چند مقدار را به شکل زیر فرستاد - ولی من نیاز ضروری به انجام این کار دارم:

Script یک پیغام را نمایش میدهد.

Success وظعیت انجام عملیات را مشخص میکند

HTml هم یک پارشیال ویو را در خود دارد که در قسمتس از View آن را قرار میدهد.

سوال اول :

آیا میشه با استفاده همین روش بالا این سه مقدار را در سمت View دریافت کرد ؟

من چون مورد بالا رو نمیدونستم چطور انجام بدم از روش Jquery Ajax استفاده کردم :

سوال دوم :

مشکلی که در این روش هست اینه که نمیدونم چطوری باید عکس داخل فایل آپلودر رو به سمت کنترولر فرستاد ؟

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 23 مرداد 1396
  • 14:30

لازم نیست از JsonData اسفتاده کنید، در آن پارمتر تنها از شما یک Objecy می خواهد و result خود را بسازید با Propertyهایی که لازم دارید: 

        var result = new CareguryJsonResult 
        {
            html = "",
            script = ""
        };
        return Json(result );

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • دوشنبه 23 مرداد 1396
  • 14:43

منظورتون برای روش اوله ؟یعنی  استفاده از فورم Ajax ؟

برای ین مورد که گفتید من مشکلی ندارم , درصورت استفاده از فرم Ajax مشکل اینه که در برگشت مقادیر به سمت View  چطوری میشه این Html و script رو دریافت کرد ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 23 مرداد 1396
  • 14:51

زمانی که فرایند درخوات respone را بازگردانی می کند آن object هم بازگردانی می کند حال فرقی نمی کند در javascript از done یا success اسفتاده کنید :

در فرآیند sucess:

function(result){
    console.log(result.html);
    console.log(result.script);
}

با استفاده از نام Property آن را دریافت کنید.

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • سه شنبه 24 مرداد 1396
  • 14:21

ممنونم مفید بود ,

جدا ازین بحث Ajax Form اگر فقط از کدنویسی JQuery Ajax استفاده کنیم آیا راهی برای ارسال فایل داخل فایل آپلودر به سمت کنترولر وجود دارد ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 24 مرداد 1396
  • 14:47

با استفاده از FormData :

  var fileData = $("#Image").prop("files")[0];
                        var fd = new FormData();
                        fd.append("image", fileData);

     $.ajax({
                                url: '@postUrl',
                                method: "POST",
                                contentType: false,
                                processData: false,
                                data: fd
                            })
                            .done(function() {
                             
                                window.location = "/";
                            });

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)