Код сервера не срабатывает при звонке с клиента с использованием jQuery ajax - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь вызвать метод на стороне сервера от клиента, используя jQuery ajax.Метод сервера никогда не срабатывает и не выдает ошибку.Это просто ничего не делает.Я использую .NET версию 4.6.1.Проект был создан с использованием Visual Studio 2017, и использовался шаблон проекта «ASP.NET Web Forms Site».Я получил большую часть клиентского кода от поиска переполнения стека.Я получил несколько обращений по моей проблеме, но ни один, кажется, не работает.Я также попробовал простой вызов jQuery, указав div и скрыв его, то есть $("#test").hide();.Этот тестовый вызов работал нормально, поэтому я вполне уверен, что сам jQuery работает.Я также пробовал код метода сервера внутри метода Page_Load, и он работал.

Вот мой код клиента:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

<script type="text/javascript" src="Scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript">

    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "Default.aspx/SayHello",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            }
        });
    });

    function OnSuccess(response) {
        alert('success');
    }

</script>

<div class="row">
    <h1>AJAX Test</h1>
</div>

</asp:Content>

Вот мой код сервера:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public static void SayHello()
    {
        System.IO.File.WriteAllText(@"C:\Temp\WriteText.txt", "hello");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...