اشتباه دستور If در چک کردن مقدار داشتن فایل HttpPostedFileBase ارسالی از سمت View
درود
در هر جایی از پروژه که من یک تصویر رو در سمت کنترولر دریافت میکنم ابتدا روی اون یک 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 چیه ؟
نقل قول: اشتباه دستور If در چک کردن مقدار داشتن فایل HttpPostedFileBase ارسالی از سمت View
نقل قول:
شیوه صحیح چک کردن HttpPostedFileBase UserImg چیه ؟
روش درست چک کردن خالی نبودن فایل این هست :
if (myFile != null && myFile.ContentLength != 0)
نقل قول:
نکته : فایل تصویر بصورت Ajaxform به سمت کنترولر فرستاده میشه.
لطفا این ویدیو از تست رو تماشا کنید تا متوجه منظورم بشید :
حجم یک مگابایت
لینک دانلود
اینکه یبار موس رو hover میکنید فایل وجود داره و دوباره hover میکنید null هست عجیبه !
فرمتون رو چجوری submit میکنید به سمت کنترلر ؟ با change شدن file input هست یا click روی submit button ؟
احتمالا چندبار فرمتون Submit میشه واگرنه دلیلی نداره یبار null باشه و یبار data داشته باشه !
این رو هم ببینید : http://powerdotnetcore.com/asp-net-m...d-using-jquery
نقل قول: اشتباه دستور If در چک کردن مقدار داشتن فایل HttpPostedFileBase ارسالی از سمت View
نقل قول:
نوشته شده توسط
Moien Tajik
روش درست چک کردن خالی نبودن فایل این هست :
if (myFile != null && myFile.ContentLength != 0)
اینکه یبار موس رو hover میکنید فایل وجود داره و دوباره hover میکنید null هست عجیبه !
فرمتون رو چجوری submit میکنید به سمت کنترلر ؟ با change شدن file input هست یا click روی submit button ؟
احتمالا چندبار فرمتون Submit میشه واگرنه دلیلی نداره یبار null باشه و یبار data داشته باشه !
این رو هم ببینید :
http://powerdotnetcore.com/asp-net-m...d-using-jquery
ممنون با کلی برسی و نگاه کردن یکی دیگه از پروژه هام فهمیدم علت چیه و مشکل حل شد .
در حالتی که فورم رو بصورت ایجکسی ایجاد میکنم - به صورت زیر :
وقتی داده ها رو صورت ایجکسی به سمت سرور میفرسته فایل HttpPostedFileBase دریافت نمیشه و بخاطر همین من فورم رو بصورت عادی
ایجاد میکنم و از یه افزونه استفاده میکنم که فورم رو ایجکسی میکنه و فایل رو هم به سمت کنترولر مبفرسته!
مشکل فعلی بخاطر این بود که هم فورم رو بصورت Ajax.BeginForm زده بودم و هم اون افزونه رو بهش اضافه کرده بودم و بخاطر همین قاطی کرده بود.
لینک معرفی شده هم خیلی مفید بود مممنون.