درود
در هر جایی از پروژه که من یک تصویر رو در سمت کنترولر دریافت میکنم ابتدا روی اون یک 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 چیه ؟