Reden Rodriguez Ответов: 1

Как вызвать код позади со стороны клиента в ASP.NET


Здравствуйте, я пытаюсь вызвать этот метод на стороне клиента, но как я могу это сделать?
public string codeBehind()
       {
           string htmlStr = "";
           SqlConnection thisConnection = new SqlConnection(dbConnection);
           SqlCommand thisCommand = thisConnection.CreateCommand();
           thisCommand.CommandText = "SELECT * from tableTest";
           thisConnection.Open();
           SqlDataReader reader = thisCommand.ExecuteReader();

           while (reader.Read())
           {
               int id = reader.GetInt32(0);
               string Name = reader.GetString(1);
               string Pass = reader.GetString(2);
               htmlStr += "<tr><td>" + id + "</td><td>" + Name + "</td><td>" + Pass + "</td></tr>";
           }

           thisConnection.Close();
           return htmlStr;
       }



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="tdtr.Index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server" >
    <table width="100%" align="center" cellpadding="2" cellspacing="2" border="0" bgcolor="#EAEAEA">
        <tr align="left" style="background-color:#004080;color:White;" >
            <td> ID </td>                        
            <td> Name </td>            
            <td>Pass</td>                        
        </tr>

    -----> code behind supposed to be here

    </table>
    </form>
</body>
</html>


Что я уже пробовал:

я попробовал вызвать свой метод, используя это
<%Response.Write(codeBehind())%>

и или это
<%=codeBehind()%>


но по какой-то причине это не может быть обнаружено, я что-то упускаю?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="tdtr.Index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server" >
    <table width="100%" align="center" cellpadding="2" cellspacing="2" border="0" bgcolor="#EAEAEA">
        <tr align="left" style="background-color:#004080;color:White;" >
            <td> ID </td>                        
            <td> Name </td>            
            <td>Pass</td>                        
        </tr>

    <%Response.Write(codeBehind())%>

    </table>
    </form>
</body>
</html>

1 Ответов

Рейтинг:
10

F-ES Sitecore

Вы должны просто нужно

<%=codeBehind()%>


если он не может найти метод codeBehind, то у вас, вероятно, нет этого метода в классе code-behind, как определено в директиве "Page" вверху, или атрибут "Inherits" не соответствует пространству имен и классу в этом файле code-behind.


Reden Rodriguez

Я только что создал новую веб форму но она всегда такая

&ЛТ;%@ страницы язык="в C#" AutoEventWireup значение="истинной" отделенного кода="тест.aspx-файл.КС" наследует="WebApplication3.Тест" %&ГТ;




использование системы;
использование System.Web.UI;

пространство имен WebApplication3
{
публичный тест частичного класса : страница
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{

}
общественного строка отделенного кода()
{
строка htmlStr = "";
Это подключение объекта sqlconnection = новое sqlconnection(соединение с БД);
Sqlcommand, который thisCommand = это подключение.CreateCommand();
это командование.CommandText = "SELECT * from tableTest";
это соединение.Открыть();
SqlDataReader reader = эта команда.Метода executereader();

в то время как (читатель.читать())
{
int id = читатель.GetInt32(0);
имя строки = читатель.GetString(1);
string Pass = читатель.GetString(2);
htmlStr += "" + id + "" + Name + "" + Pass + "";
}

это соединение.Закрывать();
возврат htmlStr;
}
}
}

F-ES Sitecore

Является ли метод вызываемым нормально? Если вы помещаете в него точку останова и отлаживаете, попадает ли она в точку останова? Либо код выполняется, но возвращает пустую строку, либо код не выполняется из-за чего-то, связанного с настройкой вашего проекта.

Reden Rodriguez

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

Reden Rodriguez

теперь я наконец-то понял, что моя visual studio отстой, ха-ха, сначала я прокомментировал весь свой код, обед, веб-приложение, и я раскомментировал все свои коды, и это работает, ха-ха-ха

F-ES Sitecore

Рад, что ты все уладил в конце концов :)

Richard Deeming

Я надеюсь, что имя переменной Pass это не значит, что вы храните пароли в базе данных?

Reden Rodriguez

это всего лишь небольшой эксперимент, мне просто было любопытно, могу ли я использовать таблицу вместо обычного gridview. :)

Reden Rodriguez

я даже создаю новое веб-приложение, и это всегда так.