c# - HVCpontext.Current एमवीसी 4 परियोजना में हल नहीं हो रहा है




asp.net asp.net-mvc (2)

मैं ImageResizer (ImageResizing dot net से) का उपयोग करना चाहता हूं। मैंने NuGet के माध्यम से एमवीसी के लिए ImageResizer स्थापित किया। लेकिन जब मैं उदाहरण से निम्नलिखित कोड का उपयोग करने के लिए जाता हूं:

//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();
}

Foreach में "HttpContext.Current.Request.Files.Keys" हल नहीं कर रहा है? मेरे पास मेरे उपयोग सही हैं और विजुअल स्टूडियो कोई "समाधान" विकल्प प्रदान नहीं करता है।


लाइब्रेरी बहुत सरल जोड़ें

using System.Web;

और प्रतिस्थापित करें

context.Response -> HttpContext.Current.Response

माध्यम

context -> HttpContext.Current

और आपकी समस्या हल हो गई है।


समस्या यह है कि Controller वर्ग की एक सार्वजनिक संपत्ति है जिसे HttpContext कहा जाता है ( http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext.aspx देखें)।

इसका अर्थ यह है कि जब आप नियंत्रक में किसी भी योग्यता के बिना इसका उपयोग करने का प्रयास करते हैं तो यह स्थानीय संपत्ति का समाधान करता है, न कि System.Web.HttpContext । संपत्ति का प्रकार HttpContextBase जिसमें एक Request संपत्ति है जो आप चाहते हैं जो करेंगे (हालांकि ध्यान दें कि यह वही कक्षा नहीं है जैसा आप System.Web.HttpContext से प्राप्त करेंगे।





httpcontext