Поэтому мне нужно составить список элементов с помощью кнопок удаления, чтобы удалить их конкретный элемент.Я настроил вызов Ajax и веб-метод в коде, как я делал ранее на этом сайте, но по какой-то причине он снова возвращает весь HTML-код страницы, а не выполняет веб-метод и возвращает то, что я хотел бы вернуть,Разочарованный Я попытался использовать метод pagemthod вместо этого, но он возвращает тот же результат, даже не выполняя мой webmethod.
Интересно, что это уже работает на нескольких других страницах, и в основном скопировать и вставить то, что у меня было, но дляпо какой-то причине на этой странице это не работает.Это означает, что я знаю, что это не проблема сервера или каких-либо httpModules в веб-конфигурации.Я пробовал решения, которые я использовал ранее на своем сайте, а именно:
form1.Action = Request.RawUrl;
в верхней части функции Page_Load в codebehind из-за перезаписи URL
PageMethods.set_path("~/Inbox.aspx");
вjavascript по той же причине, что и выше
Ниже приведено предлагаемое решение для перехода в web.config, но оно просто приводит к тому, что весь сервер становится равным 500. Я не понимаю, как это могло бы помочь в любом случае, хотя, так как pagemethodsи ajax работают на других страницах моего сайта.
<system.web>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
Я сократил код практически до нуля, чтобы он функционировал в максимально возможной степени, поэтому я уверен, что ошибок нет.В любом случае код всегда выполняется как успешный.
Вот полный код, только для контекста:
HTML / JS:
<form id="form1" runat="server" style="text-align:left">
<asp:ScriptManager runat="server" ID="mailSM" EnablePageMethods="true" EnablePartialRendering="true" ClientIDMode="Static" ></asp:ScriptManager>
<input runat="server" id="maillist" type="hidden" value="" />
<input runat="server" id="inboxhf" type="hidden" value="1" />
<div id="mail-collection" class="main-container">
<a id="back" class="buttons" href="/">back</a><a class="buttons" href="/sendmail">send new mail</a><a id="box" class="buttons" href="/outbox">your sent mail</a>
</div>
<script type="text/javascript">
function DeleteMail(mailID, fromID, toID) {
let pagepath = window.location.pathname.substr(1);
PageMethods.set_path("Mailbox.aspx");
PageMethods.DeleteMailCB(fromID, toID, pagepath, mailID, OnSuccess, OnError);
}
function OnSuccess(response) {
alert(response);
location.reload();
}
function OnError(response) {
alert("e" + response);
//OnSuccess();
}
</script>
</form>
C #:
[WebMethod]
public static void DeleteMail(string fromID, string toID, string pagepath, string mailID)
{
DB.TestForSomething();
//above just does a basic INSERT straight into a test table in the
//database. since nothing is being inserted, I know this webmethod
//isn't getting used at all.
return;
}
Не уверен, что мне следует делать отсюда, поскольку решения, которые я нашел, работают на других страницах, но не на этом.Заранее спасибо!