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

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

تاپیک مورد نظر بسته شده است

کاربر سایت

alibahman47

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

اشتباه دستور If در چک کردن مقدار داشتن فایل HttpPostedFileBase ارسالی از سمت View

  • سه شنبه 14 شهریور 1396
  • 16:27
تشکر میکنم

درود

در هر جایی از پروژه که من یک تصویر رو در سمت کنترولر دریافت میکنم ابتدا روی اون یک If میزام که در صورتی که عکسی انتخاب نشده بود پیغام مناسب اجرا بشه :

        [AjaxOnly]
        [ValidateAntiForgeryToken]
        [HttpPost]
        public ActionResult SaveImage(HttpPostedFileBase UserImg, int ImageNumber, string PId)
        { 
             
            try 
            {
                if (UserImg != null)
                {
                    //
                    return View();
                }
                else
                {
                    string Msg = "لطفا ابتدا یک تصویر را انتخاب کنید ";
                    return MessageBox.Show(Msg, MessageType.Warning);
                }
            }
            catch (Exception e)
            {
                string Msg = Convert.ToString(e);
                return MessageBox.Show(Msg, MessageType.Error);
            }
        }

ولی به یه دلیل نام معلوم حتی در صورتی که یک فایل انتخا شده باشه و تصویر در سمت کنترولر دریافت شده باشه همیشه ابتدا دستورات قسمت else اجرا میشه و بعد دستورات قسمت اصلی اجرا میشه - یعنی در نمونه کد بالا ابتدا پیغام "لطفا ابتدا یک تصویر را انتخاب کنید" رو نشون میده و بعد میره دستورات قسمت اصلی رو اجرا میکنه - دلیل این اختلال چیه ؟

نکته : فایل تصویر بصورت Ajaxform به سمت کنترولر فرستاده میشه.

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

حجم یک مگابایت لینک دانلود

شیوه صحیح چک کردن  HttpPostedFileBase UserImg  چیه ؟

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

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

سهیل علیزاده

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

  • سه شنبه 14 شهریور 1396
  • 16:47

بنده به این صورت چیک می کنم ASP.NET MVC HttpPostedFIleBase is null - Stack Overflow .

از این ابتدا دارای مقدار و پس از آن null می شود متعجبم ، بدون try تست کرده اید ؟

کاربر سایت

alibahman47

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

  • سه شنبه 14 شهریور 1396
  • 18:20

ممنون با کلی برسی و نگاه کردن یکی دیگه از پروژه هام فهمیدم علت چیه و مشکل حل شد .

در حالتی که فورم رو بصورت ایجکسی ایجاد میکنم - به صورت زیر :

@using (Ajax.BeginForm

وقتی داده ها رو صورت ایجکسی به سمت سرور میفرسته فایل HttpPostedFileBase دریافت نمیشه و بخاطر همین من فورم رو بصورت عادی

Html.BeginForm

ایجاد میکنم و از یه افزونه استفاده میکنم که فورم رو ایجکسی میکنه و فایل رو هم به سمت کنترولر مبفرسته!

مشکل فعلی بخاطر این بود که هم فورم رو بصورت  Ajax.BeginForm  زده بودم و هم اون افزونه رو بهش اضافه کرده بودم و بخاطر همین قاطی کرده بود.

بابت این مورد ASP.NET MVC HttpPostedFIleBase is null - Stack Overflow هم ممنون مفید بود.

خداروشکر اون مورد DropZone که معرفی کردید یه همچین مکشلی رو نداره.

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

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

تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد

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

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