Response.write записывает данные в браузер, а когда браузер загружает страницу, он анализирует эти данные (отображает html и выполняет js). Никаких дальнейших сообщений или отзывов на сервер (где работает код веб-формы asp.net) не происходит, если браузер не связывается с сервером через GET или POST (отправка формы, ссылка, ajax).
Происходит следующее: вы направляете вывод клиенту, а затем немедленно вызываете Response.Redirect, поэтому клиент никогда не получает ваш вывод. Вместо этого он просто перенаправляет сразу и затем отображает страницу default.aspx.
То, что вы могли бы сделать, это все еще сделать перенаправление, но передать некоторые данные клиенту (строка запроса могла бы быть способом сделать это), и тогда страница default.aspx будет знать, чтобы искать эти данные. Если эти данные будут найдены, будут выполнены любые необходимые действия. В вашем случае вы хотите, чтобы он предупреждал пользователя.
Одним из способов сделать это является перенаправление на «~ / Default.aspx? Alert = 1». В default.aspx при загрузке страницы он просматривает строку запроса и проверяет наличие ключа предупреждения со значением 1. Если бы это было так, он выполнил бы ваше предупреждение.