در این برنامه هدف آموزش ایجاد لینک دانلود بگونه ای که کاربران از محل فیزیکی آن اطلاعی نداشته باشند می باشد.
ابتدا پروژه ای از نوع Empty MVC ایجاد نمایید .
سپس ا یک کنترلر به نام Home به پوشه controller اضافه نمایید .
یک پوشه به نام Uploads در پروژه جهت نگهداری فایلهای پروژه ایجاد نمایید.
یک فایل بعنوان مثال از نوع zip درون پوشه Uploads قرار دهید.
جهت ساخت لینک دانلود این فایل یک اکشن به نام download بصورت زیر در کنترلر ایجاد نمایید.
public System.Web.Mvc.FileResult download()
{
string strRootRelativePathName =
"~/uploads/noty-2.2.0.zip";
string strPathName =
Server.MapPath(strRootRelativePathName);
return (File(strPathName, contentType: "fekre/bekr", fileDownloadName: "myfile.zip"));
}
همانطور که میبینید نام فایلی که جهت دانلود مورد استفاده قرار گرفته است myfile.zip نام دارد.
نکته : مقدار درج شده درون خاصیت contentType باید یک مقدار نامفهوم باشد در غیر اینصورت بجای دانلود فایل ، محتوای آن در مرورگر نمایش داده خواهد شد.
اکنون باید یک ویویی ایجاد نماییم که دارای لینک دانلود جهت ارجاع به اکشن download باشد.
در این مرحله یک اکشن با نام Index بصورت زیر ایجاد نمایید.
public ActionResult Index()
{
return View();
}
سپس یک ویو برای اکشن فوق ایجاد نمایید و محتوای آنرا بصورت زیر ویرایش نمایید.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@Html.ActionLink("دانلود", "download");
</div>
</body>
</html>
اکنون برنامه را اجرا نمایید.