ASP.NET 5 не может использовать Response

Я пытаюсь вывести информацию из моей базы данных в файл Excel с помощью ASP.Net 5. В моем контроллере у меня есть два метода для этого.

public void ExportData() { var data = new[]{ new{ Name="Ram", Email="[email protected]", Phone="111-222-3333" }, new{ Name="Shyam", Email="[email protected]", Phone="159-222-1596" }, new{ Name="Mohan", Email="[email protected]", Phone="456-222-4569" }, new{ Name="Sohan", Email="[email protected]", Phone="789-456-3333" }, new{ Name="Karan", Email="[email protected]", Phone="111-222-1234" }, new{ Name="Brij", Email="[email protected]", Phone="111-222-3333" } }; System.Web.HttpContext.Current.Response.ClearContent(); System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Contact.xls"); System.Web.HttpContext.Current.Response.AddHeader("Content-Type", "application/vnd.ms-excel"); WriteTsv(data, System.Web.HttpContext.Current.Response.Output); System.Web.HttpContext.Current.Response.End(); } public void WriteTsv<T>(IEnumerable<T> data, TextWriter output) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); foreach (PropertyDescriptor prop in props) { output.Write(prop.DisplayName); // header output.Write("\t"); } output.WriteLine(); foreach (T item in data) { foreach (PropertyDescriptor prop in props) { output.Write(prop.Converter.ConvertToString( prop.GetValue(item))); output.Write("\t"); } output.WriteLine(); } } 

Я вынужден использовать System.Web, потому что я понятия не имею, как экспортировать файл excel с помощью ASP.Net 5, поэтому я в настоящее время использую dnx451 . Я удалил dnxcore50 из моего project.json, чтобы использовать System.Web.

Однако при вызове метода top я получаю следующую ошибку:

 NullReferenceException: Object reference not set to an instance of an object. 

на

 System.Web.HttpContext.Current.Response.ClearContent(); 

Исходный пример этого кода:

 Response 

Вместо:

 System.Web.HttpContext.Current.Response 

Я не могу использовать только Response, потому что вместо System.Web используется Microsoft.AspNet.Http.HttpResponse

Использование System.Web.HttpResponse также не работает, потому что оно дает следующую ошибку:

 An object reference is required for the non-static field, method, or property 

Это мое первое веб-приложение, и эта проблема заставила меня захлебнуться. Может кто-нибудь мне помочь?

Вы не можете использовать System.Web. Одной из целей ASP.Net Core было удаление зависимости от System.Web. Поскольку ASP.Net Core не зависит от System.Web HttpContext и др. не будут инициализированы и, следовательно, NRE. Вы можете использовать IHttpContextAccessor чтобы получить HttpContext в ядре ASP.Net и получить доступ к Ответу оттуда.

Давайте будем гением компьютера.