Member 13981467 Ответов: 2

Как решить ошибку компилятора CS1061


Эй,мне нравится открывать свое всплывающее окно, когда кто-то нажимает на кнопку, вызывая мой JS-метод OpenDialogToTest(). Когда я добавил свой метод OpenDialogToTest() и CloseDialogToTest() в onClick кнопки, я получаю ошибку CS1061 'ASP.default_aspx' не содержит определения для 'CloseDialogToTest' и не может быть найден метод расширения 'CloseDialogToTest', принимающий первый аргумент типа 'ASP.default_aspx' (вы пропускаете директиву using или ссылку на сборку?)

Это будет мой текущий код.
Надеюсь, кто - нибудь сможет мне помочь!

&ЛТ;АСП:содержание атрибут runat="сервер" идентификатор="bodycontent, который" атрибутом ContentPlaceHolderID="как MainContent"&ГТ;
<script type="text/javascript">
$(документ).готово(функция () {
var dlg = $("#dialog-test").dialog({
autoOpen: ложь,
ширина: 600,
модальные: правда,
closeOnEscape: правда
});
});

функция OpenDialogToTest() {
$("диалог-тест").диалогового окна("открыть");
}

функция CloseDialogToTest() {
$("диалог-тест").диалоговое окно("закрыть");
}
</script>

&ЛТ;див ИД="диалог-тест" заголовок="тест"&ГТ;
&ЛТ;АСП:кнопка атрибут runat="сервер" идентификатор="btnTest" текст="работает" функция onclick="CloseDialogToTest()"/&ГТ;
</div>

&ЛТ;див класс="строка приветствия"и GT;
<div class="col-md-12 text-center">
<h3><b>Добро пожаловать на мою страницу</b></h3>
&ЛТ;АСП:кнопка атрибут runat="сервер" идентификатор="btnOpenTest" текст="пуск", функция onclick="OpenDialogToTest()"/&ГТ;
</div>
</div>
</asp:содержание>

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

Я попытался использовать OnClientClick вместо OnClick, теперь мое окно появляется и сразу же исчезает снова.

F-ES Sitecore

Вы смешиваете вызовы и код на стороне клиента и сервера. Вы не можете вызывать функции js из вашего кода .net, и вы не можете вызывать методы .net из вашего кода js.

Member 13981467

Спасибо, это решило мою проблему

2 Ответов

Рейтинг:
18

Vincent Maverick Durano

Вы получаете эту ошибку, потому что компилятор не может найти или найти CloseDialogToTest событие. То OnClick мероприятие ASP.NET Button Контроль это Server событие. Это означает, что когда вы объявляете свою разметку следующим образом:

<asp:Button runat="server" id="btnTest" Text="Log In" OnClick="btnTest_Click" />


Соответствующий обработчик событий в вашем коде C# будет выглядеть примерно так:

protected void btnTest_Click(object sender, EventArgs e)
{
    // Do server side stuff here
}


Если вы пытаетесь позвонить JavaScript функция затем используйте OnClientClick событие кнопки вместо этого выглядит так:
<asp:Button runat="server" ID="btnOpenTest" Text="Start" OnClientClick="OpenDialogToTest(); return false;"/>


То return false; когда призвали вашего JavaScript функция позволит предотвратить Button чтобы вызвать полную обратную передачу.


Рейтинг:
1

OriginalGriff

Посмотрите на сообщение об ошибке:

CS1061 'ASP.default_aspx' does not contain a definition for 'CloseDialogToTest' and no extension method 'CloseDialogToTest' accepting a first argument of type 'ASP.default_aspx' could be found (are you missing a using directive or an assembly reference?)
Он не может объяснить себя намного яснее: метод, который вы вызываете - CloseDialogToTest - не существует в коде ASPX / C# этой страницы.

Проверьте файл ASPX, посмотрите, какие методы он объявляет, и либо напишите метод, либо проверьте, что его параметры соответствуют сигнатуре обработчика событий Click. Помните, что C# чувствителен к регистру, поэтому верхняя и нижняя буквы должны точно совпадать.


Member 13981467

У меня уже была такая же функция и т. д. на странице, и я просто продублировал ее и изменил имена. Может ли другой диалог работать, а мой новый-нет?
Код, который я опубликовал, - это мой код aspx, и я не думаю, что мне нужно что-то менять в своем коде c#, потому что мне не нравится делать свой код за чем-то, когда я открываю окно.
Извините за мои тупые вопросы, у меня нет большого опыта работы с asp.net

Vincent Maverick Durano

Проблема не в названии. Ошибка указывает на то, что функция или метод CloseDialogToTest() не существует, поскольку событие OnClick пытается найти соответствующий обработчик событий сервера. Ваша функция CloseDialogToTest() является клиентской функцией, и поэтому она ошибается. Пожалуйста, проверьте решение, которое я вам предоставил.