Проблема в том, что символ тильды - это конструкция Razor для корня сайта. Он не распознается за пределами этого, следовательно, он не будет работать в вашем коде JS. Поскольку вы поместили эту логику в представление, вы можете использовать @Url.Content()
для анализа URL-адреса перед его выводом на JS:
setInterval(function () {
$("#loadList").load("@Url.Content("~/Views/Purchases/_List.cshtml")");
}, 3000);
Также обратите внимание, что если ваша маршрутизация настроена правильно, вы можете использовать Url.Action()
, который был бы более надежным, например, @Url.Action("_List", "ControllerNameHere");
Однако , следует отметить, что отправка AJAX-запроса на ваш сервер каждые 3 секунды не является хорошей идеей. Он вообще не масштабируется и вызовет проблемы с производительностью. Если вам необходимо поддерживать тесную синхронизацию обслуживаемых данных и клиентского интерфейса, то гораздо лучше будет использовать отправленные сервером события или WebSockets.