aspnetcore/test/WebSites/FormatterWebSite/Controllers/StreamController.cs

61 lines
1.7 KiB
C#

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.IO;
using Microsoft.AspNetCore.Mvc;
namespace FormatterWebSite
{
public class StreamController : Controller
{
[HttpGet]
public Stream SimpleMemoryStream()
{
return CreateDefaultStream();
}
[HttpGet]
public Stream MemoryStreamWithContentType()
{
Response.ContentType = "text/html";
return CreateDefaultStream();
}
[HttpGet]
[Produces("text/plain")]
public Stream MemoryStreamWithContentTypeFromProduces()
{
return CreateDefaultStream();
}
[HttpGet]
[Produces("text/html", "text/plain")]
public Stream MemoryStreamWithContentTypeFromProducesWithMultipleValues()
{
return CreateDefaultStream();
}
[HttpGet]
[Produces("text/plain")]
public Stream MemoryStreamOverridesProducesContentTypeWithResponseContentType()
{
// Produces will set a ContentType on the implicit ObjectResult and
// ContentType on response are overriden by content types from ObjectResult.
Response.ContentType = "text/html";
return CreateDefaultStream();
}
private static Stream CreateDefaultStream()
{
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write("Sample text from a stream");
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
}
}