Попробуйте использовать:
// note the case
Response.Headers.Add("Content-Type", "application/json; charset=utf-8");
или даже лучше:
Response.ContentType = "application/json; charset=utf-8";
За то, что вы, кажется, делать, я рекомендую использовать IHttpHandler
вместо страницы ASPX. Вы даже можете настроить этот, чтобы иметь расширение json (хотя расширение не должно быть таким важным). Вот пример:
public class CustomHttpHandler : IHttpHandler
{
// return true to reuse (cache server-side) the result
// for the same request parameters or false, otherwise
public bool IsReusable { get { return true; } }
public void ProcessRequest(HttpContext context)
{
var response = context.Response;
// do with the response what you must
}
и настроить его в веб-конфигурации:
<configuration>
</system.web>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*"
path="*.asmx"
validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions" />
<add verb="*"
path="*_AppService.axd"
validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions" />
<add verb="GET,HEAD"
path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions" validate="false" />
<!-- your handler here: -->
<add verb="GET"
path="CustomHttpHandler.json"
type="YourApp.CustomHttpHandler, YourApp" />
</httpHandlers>
</system.web>
</configuration>
Вы можете играть с глаголом, чтобы получить доступ к маркеру для GET/POST или другие типы запросов, используйте "*"
для все. Обработчик доступен как «~/CustomHttpHandler.json» - обратите внимание на добавленное расширение json (оригинал - .ashx). Однако вам все равно придется помещать заголовки содержимого в ответ.
записать его в файл. 'System.IO.File.WriteAllText (@" D: \ path.txt ", json);' –
@RobertHarvey Я думаю, что он хочет вернуть ** страницу ** с типом контента json, а не писать на нем файл ... может быть ошибочным. – Mansfield
Вы хотите добавить '.json' в список управляемых расширений файлов? Итак, 'GET foo.json' попадает в управляемый конвейер и .NET-стек? – lukiffer