View Full Version : فضای نام File در مقدار برگشتی متد از نوع FileAction کدام است؟
mmbguide
سه شنبه 30 فروردین 1401, 23:10 عصر
سلام
می خواستم امکان دانلود فایل رو به کاربر بدم ولی تمام نمونه کدهایی که دیدم در زمان برگشت از کد زیر استفاده کردند:
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
برنامه خطای زیر را نشان میدهد:
The name 'File' does not exist in the current context
سوالم این هستش که File متعلق به کدام فضای نام هستش؟ System.IO و Syetem.Web و System.Mvc و... هرچی رو امتحان کردم مشکل حل نشد.
ممنون اگر راهنمایی کنید.
mmbguide
چهارشنبه 31 فروردین 1401, 09:13 صبح
در حال حاضر برای رفع موقت مشکل نوع برگشتی رو FileContentResult انتخاب کردم که پارامتر سوم که نام فایل هست رو نداره و فایل ها پس از دانلود پسوند ندارند. این مشکل را چطور باید حل کرد؟ تشکر
mmbguide
پنج شنبه 01 اردیبهشت 1401, 21:43 عصر
سلام
در عنوان تاپیک FileResult صحیح مباشد و FileAction اشتباه می باشد.
علت نشناختن File به این دلیل بود که من دستورات Upload و Download فایل رو در یک کلاس معمولی نوشته بودم. دستورات را در یک Controller انتقال دادم و مشکل حل شد و تونستم از File به عنوان نوع برگشتی استفاده کنم. دلیل استفاده از کلاس خارج از Controller امکان استفاده از طریق سایر actionها در Controllerها دیگه بود. البته با این ویرایشی که کردم مشکل حل شد و فقط موردی که در این تغییر یاد گرفتم این بود که ابتدا باید یک متغیر از نوع Controller مورد نظر ایجاد کنم و بعد از متدهای موجود در آن را فراخوانی کنم ولی مشکل دوم این بود که به httpContext گیر میداد و نمیتونست HttpContext رو پیدا کنه چون در Controller مدیریت فایل باید با استافده از Server.MapPath آدرس مورد نظر را بدست می آوردم که نتیجه این شد که بعد از ایجاد یک شیء از Controller مدیریت کننده فایل ها باید ControllerContext جاری به آن انتقال داده شود:
fu.ControllerContext = this.ControllerContext;
تازه دارم Asp.Net MVC یاد میگیرم و مجبورم کارهایی که انجام میدم رو پست کنم تا اگر اشتباهی وجود داره اصلاح بشه. البته اگر منعی از طرف مدیر محترم گروه نباشه. تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.