Итак, оказывается, что способ не переопределить форматтер по умолчанию - это добавить в конец OutputFormatters вместо вставки в начало списка. Это изменение сработало:
Я сделал пользовательский форматер, следуя документации ( https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/custom- форматтеры? вид = aspnetcore-2,2 ). Мой пользовательский модуль форматирования записывает ответ как специальный вид байтового массива, и его следует использовать, когда в заголовке «Accept» запроса есть «application / octet-stream».
Я бы хотел, чтобы по умолчанию просто возвращался объект json, как это происходит, когда он вызывается с использованием «application / json», но вместо этого по умолчанию используется мой форматер, когда я не указываю заголовок. Как я могу это исправить и просто использовать JsonOutputFormatter по умолчанию?
Я добавляю свой форматер следующим образом:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.OutputFormatters.Add(new OctetStreamOutputFormatter());
});
}
Как другие заявили, с помощью Инструментария Ajax ASP.NET, ToolkitScriptManager, а не ASP.NET ScriptManager по умолчанию позволит Вам делать некоторое объединение сценария, включая Ваши собственные сценарии, встроенные как ресурсы - существует хорошее сообщение об этом при объединении Сценария, сделанном легким.
Если у Вас есть роскошь использования ASP.NET 3,5 SP1, то существуют некоторые дальнейшие дополнения к ASP.NET ScriptManager, которые позволяют Вам комбинировать намного больше сценариев, включая общие .js файлы в Вашем решении в один вызов сценария.
Проверьте видео здесь:
Использование сценария, объединяющегося для улучшения производительность
Попытайтесь использовать ajax - ToolkitScriptManager вместо asp - ScriptManager - он имеет тенденцию комбинировать такое количество запросов ресурса, как он может.
здесь Статья CodeProject для обеих версий фреймворков 2.0 и 3.5