Я пишу пользовательский ActionFilterAttribute
и пытаюсь записать некоторые данные непосредственно в поток вывода в ASP.NET MVC 3. Данные, которые я пишу, это все, что мне нужно в ответ, но после записи есть дополнительные данные после просмотра данных. Я пытаюсь закрыть OutputStream
, но он все еще остается доступным для написания. Как закрыть этот поток для записи или игнорировать последующую визуализацию HTML?Выходной поток HttpWebResponse не закрывается
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var request = filterContext.RequestContext.HttpContext.Request;
var acceptTypes = request.AcceptTypes ?? new string[] {};
var response = filterContext.HttpContext.Response;
if (acceptTypes.Contains("application/json"))
{
response.ContentType = "application/json";
Serializer.Serialize(data, response.ContentType, response.OutputStream);
}
else if (acceptTypes.Contains("text/xml"))
{
response.ContentType = "text/xml";
Serializer.Serialize(data, response.ContentType, response.OutputStream);
}
response.OutputStream.Close();
}
UPD
К примеру мои данные {"Total": 42, "Now": 9000}
И на мой взгляд, как этот
<div>
<span>The data that shouldn't be here</span>
</div>
В ответ я получаю
{"Total": 42, "Now": 9000}
<div>
<span>The data that shouldn't be here</span>
</div>
и это не действует в формате JSON, как вы видете. Моя цель - отправить только JSON или XML
Попробуйте закрыть ответ, а не OutputStream – DenisPostu
@DenisPostu, когда я закрываю ответ, запрос не может быть завершен –
Возможно, вы можете описать, что вы пытаетесь выполнить, и что конкретно вы получаете в отклике, который нежелателен? –