Можно ли программно запускать обратную передачу из кода сервера в ASP.NET? Я знаю, что возможно выполнить Response.Redirect или Server.Transfer для перенаправления на страницу, но есть способ вызвать обратную передачу на ту же страницу в код сервера (т.е. без использования обмана javascript для отправки формы)?ASP.NET - Возможно ли инициировать обратную передачу с кода сервера?
ответ
Asp.net Postbacks инициируются клиентом (как правило, с представлением формы). Я не уверен, чего вы пытаетесь достичь. Некоторые из событий сервера page lifecyle уже выполнены, и то, что вы пытаетесь сделать, это снова обработать предыдущие обработчики событий.
Вы можете сделать это с помощью запроса Ajax. Вы должны иметь страницу, опросившую сервер. Сервер не может передавать информацию в браузер без запроса. Но наличие Javascript, который работает в фоновом режиме, и опросы сервера каждые 5 секунд (или больше, в зависимости от ваших потребностей), вероятно, будут лучшим решением.
APPEND
Если вы идете по этому пути, вы можете иметь сервер отправить обратно только да или нет, или даже просто 0 или 1 в зависимости от того, должен ли быть выполнена постбэк. В зависимости от ваших потребностей многие из них не имеют оснований для фактического использования XML-части AJAX. Просто запустите простой асинхронный запрос, возможно, с несколькими переменными запроса и верните простое одно слово или даже число в качестве ответа. Таким образом, вы можете сохранить javascript для создания и анализа XML, если он не нужен.
Вы даже прочитали его вопрос? – FlySwat 2008-09-13 16:31:04
Резервные копии вызваны представлением FORM. Вам нужно инициировать их от клиента.
Если вы хотите начать общение с сервером, а не опросить, посмотрите на SignalR Microsoft. Самый простой контекст для этого, и один, который SignalR имеет как часть своего примерного кода, является чат-приложением. Вы сможете инициировать сообщения из кода позади и получать их как события javascript на своей странице.
код сервера Для отправки:
using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
}
}
}
код клиента, чтобы поймать сообщения сервера является переопределение 'chat.client.broadcastMessage':
<script type="text/javascript">
$(function() {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
// Create a function that the hub can call to broadcast messages.
chat.client.broadcastMessage = function (name, message) {
// Html encode display name and message.
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>: ' + encodedMsg + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start().done(function() {
$('#sendmessage').click(function() {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
});
</script>
Для тех, кто использует новые версии .NET, вы должны использовать Page.ClientScript.GetPostBackEventReference
, так как 'this.GetPostBackEventReference(...)'
устарел. Также возможно Page.ClientScript.RegisterStartupScript(...
- 1. Кнопка ASP.NET вызывает обратную передачу
- 2. Хотите моделировать обратную передачу в ASP.Net MVC
- 3. popupextendercontrol вызывает обратную передачу в asp.net 3.5
- 4. ASP.NET - Как определить частичную обратную передачу?
- 5. Предотвратить эту обратную передачу
- 6. Возможно ли, чтобы сервер обрабатывал postback как не обратную передачу?
- 7. Почему window.onload игнорирует обратную передачу?
- 8. ASP.NET динамически добавляет обратную передачу в updatepanel
- 9. Идентифицировать обратную передачу из элемента управления ASP.NET
- 10. ASP.NET: может ли кнопка в UpdatePanel вызвать обратную передачу?
- 11. Динамически сделать обратную передачу
- 12. Как остановить нежелательную обратную передачу
- 13. Параметры через обратную передачу
- 14. UpdatePanel вызывает полную обратную передачу. Попытка сделать частичную обратную передачу
- 15. Как добавить хэш и инициировать обратную передачу одним щелчком элемента <a> веб-формы ASP.net?
- 16. Asp.Net инициировать передачу 2 файлов с «Сохранить как» диалогового
- 17. Как вызвать обратную передачу в ASP.Net с помощью Python
- 18. Валидаторы, не предотвращающие обратную передачу
- 19. Как вызвать обратную передачу с использованием javascript в форме ASP.NET
- 20. Остановить обратную передачу в TextChanged
- 21. Предотвратить обратную передачу webform onclick
- 22. Сохранение состояния через обратную передачу
- 23. Можно ли отключить обратную передачу в элементе DOM?
- 24. Какая страница получает обратную передачу с Server.Transfer?
- 25. Остановить обратную передачу в javascript
- 26. Остановить обратную передачу после оповещения по javascript в ASP.NET Code
- 27. Asp.Net jQuery $ .getJSON иногда вызывает полную обратную передачу страницы?
- 28. C# Делегаты через обратную передачу
- 29. Почему onclientclick делает обратную передачу?
- 30. Выполните обратную передачу в ASP.Net, динамически добавленный jQuery
Ссылка не действительна. Я пытаюсь взломать здесь: http://bumbasblog.blogspot.com/2010/04/how-to-keep-session-alive-in-your-site.html, я обновлю свой комментарий, если он сработает. Хотя, это значит, что сеанс остается живым и не связан с вопросом OP. Я пробую другой подход. – 2017-11-16 22:10:55