Отправка переменной в C # внутри кода Javascript - PullRequest
0 голосов
/ 26 июля 2011

Код Javascript:

function jsfunction ()
{
var sayi = 9999;
alert('<%= cfunction("'+sayi+'")%>');
} 

Код C #:

public string cfunction(string gelen)
{
 return gelen;
} 

Обычно, должно быть значение 9999, которое отправляется в код C # из кода JavaScript, но этозначение, возвращаемое как '+sayi+'.Кроме того, это дает мне предупреждение 9999. Что я не прав?

Ответы [ 3 ]

4 голосов
/ 26 июля 2011

К моменту запуска JavaScript код C # уже был выполнен.Узнай свою страницу жизненного цикла.

Если вы хотите вызвать серверную функцию для получения данных, вам нужно узнать об Ajax.

0 голосов
/ 26 июля 2011

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

http://www.chadscharf.com/index.php/2009/11/creating-a-page-method-scriptmethod-within-an-ascx-user-control-using-ajax-json-base-classes-and-reflection/

0 голосов
/ 26 июля 2011

C # (на стороне сервера) может генерировать разметку для стороны клиента, сторона клиента не может перезвонить на сторону сервера без какого-либо веб-запроса типа Ajax .

Чтобы сделать то, что вы ищете, вы можете создать C # webmethod

[WebMethod()]
public static string cfunction(string gelen)
{
    return gelen;
}

И использовать веб-метод с клиентской стороны jQuery.ajax () (вам понадобится скрипт библиотеки jQuery, если у вас его еще нет)

function jsfunction() {
    var sayi = 9999;
    $.ajax({
        type: "POST",
        url: "YOUR-ASPX-PAGE.aspx/cfunction",
        data: "{gelen:'" + sayi + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg.d);
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...