Веб-метод не вызывает - PullRequest
       22

Веб-метод не вызывает

0 голосов
/ 15 апреля 2019

Я использую веб-метод в C # и через Ajax вызываю этот веб-метод. Но веб-метод не вызывается.

Мне нужно загрузить диаграмму динамически, используя asp.net с методом c #. Поэтому я использовал веб-метод для взаимодействия со стороной клиента. Пожалуйста, посмотрите следующий код ниже. Мой веб-метод не вызывает

Aspx Page:

<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "CS.aspx/GetCurrentTime",
        data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function(response) {
            alert(response.d);
        }
    });
}
function OnSuccess(response) {
    alert(response.d);
}
</script> 
</head>
<body style = "font-family:Arial; font-size:10pt">
<form id="form1" runat="server">
<div>
Your Name : 
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="Show Current Time" 
    onclick = "ShowCurrentTime()" />
</div>
</form>
</body>

C # код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

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

    }

[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name)
{
    return "Hello " + name + Environment.NewLine + "The Current Time is: " 
        + DateTime.Now.ToString();
}
}

Получение "Undefined". Требуется ваша помощь

Ответы [ 3 ]

1 голос
/ 15 апреля 2019

Вы называете его как POST с веб-страницы, но на контроллере это атрибут GET (который используется по умолчанию)

Добавление [HttpPost] для исправления или изменения вызова ajax на GET (возможно,лучше).

0 голосов
/ 16 апреля 2019

Можете ли вы добавить эти строки в код web.config ниже, они предназначены для протоколов get get и post:

 <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
0 голосов
/ 15 апреля 2019

есть проблема с синтаксисом jquery.и правильный синтаксис должен быть таким, как показано ниже.Пожалуйста, попробуйте приведенный ниже исправленный код и дайте мне знать.

<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "CS.aspx/GetCurrentTime",
        data: {name: $("#<%=txtUserName.ClientID%>").val()},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function(response) {
            alert(response);
        }
    });
}
function OnSuccess(response) {
    alert(response);
}
</script> 
...