Не существует конкретного способа определить, был ли вызов сделан с помощью javascript или непосредственно в браузере, поскольку это обычный http-вызов.
Вы можете добавить заголовок к вашему вызову ajax, чтобы отличить его от других вызовов, или, возможно, добавить параметр в строку запроса, которая используется только в вызовах ajax.
ASP.NET MVC ajax действительно добавляет такой заголовок - X-Requested-With: XMLHttpRequest
, который можно использовать, чтобы выяснить, что это ajax-вызов из библиотеки mvc ajax. Однако, если вы используете jQuery или ваши собственные ajax-вызовы, это не будет установлено. Кроме того, другие клиенты могут подделать этот заголовок (например, с помощью WebClient), поэтому обнаружение его не является гарантией того, что был выполнен вызов ajax.