Какой самый простой способ для клиента ASP.NET передать одно строковое значение (определенное в коде) серверу? - PullRequest
1 голос
/ 01 мая 2010

Мне просто нужен клиентский JavaScript, чтобы иметь возможность отправлять строковое значение в серверное приложение ASP.NET. Каково общее мнение об этом процессе?

Ответы [ 6 ]

3 голосов
/ 01 мая 2010

На ум приходит несколько идей:

  1. Сам URL. Это требует, чтобы сервер был в состоянии проанализировать запрос, чтобы вывести эти данные простым способом.
  2. QueryString. К строке запроса, вероятно, добавлена ​​вторая самая простая идея.
  3. Данные формы. Моделирование почтового запроса с данными в почтовом сообщении было бы самым сложным, но и самым безопасным из всех вероятностей.
1 голос
/ 01 мая 2010

Я бы пошел с:

Клиент:

<script type="text/javascript">
    function sendString(str){
        (new Image).src = "/url.aspx?s=" + escape(str);
    }
</script>

Сервер @ "/url.aspx" в Page_Load (C #):

string str = Request.QueryString["s"];
/* do stuff with str... */
// 204 means "NoContent"
Response.StatusCode = 204;

Этот метод, вероятно, также выиграл бы соревнование по коду. : -)

1 голос
/ 01 мая 2010

Используйте jQuery для связи с клиентом и сервером.

Отправка данных в общий обработчик ASP.NET

var url = 'http://whatever.com/YourPage.ashx?data=' + escape("your data string");
$.post(url, {/* or send the data as a JSON object */}, function(response){
    // do whatever with the response object
}, 'html'); // I'm assuming a html response here, but it could be anything..

затем на сервере создайте класс универсального обработчика:

public class YourApplicationHandler : IHttpHandler
{
    public void ProcessRequest (HttpContext context)
    {       
        string data = Request.QueryString["data"];
        // do your magic with the data
    }

}

Если вы хотите получить более конкретный ответ, обновите вопрос с указанием

1 голос
/ 01 мая 2010

добавить скрытый ввод в вашу веб-форму, установить его значение на стороне клиента и получить значение при обратной передаче.

1 голос
/ 01 мая 2010

Я предполагаю, что вы не хотите уходить от текущей страницы, поэтому я бы сказал, использовать пост формы AJAX В большинстве библиотек JavaScript есть простой способ сделать это.

Ваш ответ может быть простым объектом JSON.

JavaScriptSerializer ser = new JavaScriptSerializer();
return ser.Serialize(new
{
    @success = true,
    @message = "some message"   
});
1 голос
/ 01 мая 2010

Для передачи содержимого переменных между страницами ASP.NET предоставляет нам несколько вариантов. Одним из вариантов является использование свойства QueryString объекта Request. При серфинге в интернете вы должны были увидеть странный интернет-адрес, такой как приведенный ниже.

http://www.localhost.com/Webform1.aspx?firstName=Muse&secondName=VSExtensions

Этот html-адрес использует свойство QueryString для передачи значений между страницами. По этому адресу вы отправляете 3 информации.

Webform.aspx это страница вашего браузера. firstName = Muse вы отправляете переменную firstName с установленным значением Muse secondName = VSExtensions вы отправляете переменную secondName, для которой установлено значение VSExtensions

Поместите этот код в обработчик page_load страницы:

String firstName = Request.QueryString ["firstName"]; String secondName = Request.QueryString ["secondName"];

Привет ...

S

...