HttpContext.Current не разрешается в проекте MVC 4
Я хочу использовать ImageResizer (из ImageResizing dot net). Я установил ImageResizer для MVC через NuGet. Но когда я использую следующий код из примера:
//Loop through each uploaded file
foreach (string fileKey in HttpContext.Current.Request.Files.Keys)
{
HttpPostedFile file = HttpContext.Current.Request.Files[fileKey];
if (file.ContentLength <= 0) continue; //Skip unused file controls.
//The resizing settings can specify any of 30 commands.. See http://imageresizing.net for details.
//Destination paths can have variables like <guid> and <ext>, or
//even a santizied version of the original filename, like <filename:A-Za-z0-9>
ImageResizer.ImageJob i = new ImageResizer.ImageJob(file, "~/uploads/<guid>.<ext>", new ImageResizer.ResizeSettings(
"width=2000;height=2000;format=jpg;mode=max"));
i.CreateParentDirectory = true; //Auto-create the uploads directory.
i.Build();
}
"HttpContext.Current.Request.Files.Keys" в foreach не разрешает? У меня правильные настройки, и Visual Studio не предлагает никаких параметров "Разрешить".
Ответы
Ответ 1
Проблема заключается в том, что класс Controller
имеет общедоступное свойство HttpContext
(см. http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext.aspx).
Это означает, что когда вы пытаетесь использовать его без какой-либо квалификации в контроллере, он разрешает локальное свойство, а не System.Web.HttpContext
. Тип свойства HttpContextBase
, который имеет свойство Request
, которое будет делать то, что вы хотите (хотя обратите внимание, что это не тот класс, который вы бы получили из System.Web.HttpContext
.
Ответ 2
Попробуйте установить его с помощью System.Web.
Если я попробую System.Web.HttpContext.Current
, то есть Current, но если я попробую HttpContext.Current
, тогда он не распознает "Current". У меня есть System.Web
в моих операциях using, но мне все еще кажется, что требуется указать его, чтобы получить доступ к "Current".
Ответ 3
Очень простая библиотека добавления
using System.Web;
и замените
context.Response -> HttpContext.Current.Response
означает
context -> HttpContext.Current
и ваша проблема решена.